NotSupportedException无法激活JNI句柄 - MvvmCross

时间:2016-05-31 08:49:30

标签: c# android xamarin mvvmcross

我最近在项目中将MvvmCross从3.5.1更新到4.1.4,并随之发布了应用更新。

之后,我从Xamarin Insights看到很多用户的体验;

Could not activate JNI Handle 0xffb35af8 (key_handle 0xe888654) of Java type 'md53997af0c1a24144057e197743f9f827a/HomeView' as managed type 'package.name.HomeView'几乎所有活动及其各自的活动名称。所有这些活动都是MvxActivities。

我的Setup.cs -

public class Setup : MvxAndroidSetup
{
    public Setup(Context applicationContext)
        : base(applicationContext)
    {
    }

    protected override IMvxApplication CreateApp()
    {
        return new MVVM.App();
    }

    protected override IMvxTrace CreateDebugTrace()
    {
        return new MvxDebugTrace();
    }

    protected override MvvmCross.Droid.Views.IMvxAndroidViewPresenter CreateViewPresenter()
    {
        var presenter = new MyViewPresenter();

        Mvx.RegisterSingleton<IMvxViewPresenter>(presenter);

        return presenter;
    }

    protected override void FillTargetFactories(MvvmCross.Binding.Bindings.Target.Construction.IMvxTargetBindingFactoryRegistry registry)
    {
        registry.RegisterCustomBindingFactory<View>(
                 "ShowMe",
                 v => new ViewScalingCustomBinding(v));
        registry.RegisterCustomBindingFactory<View>(
                 "ScaleMe",
                 v => new ViewSizingCustomBinding(v));
        registry.RegisterCustomBindingFactory<View>(
                 "CustomFont",
                 v => new FontCustomBinding(v));
        registry.RegisterCustomBindingFactory<View>(
                 "OtherCustomFont",
                 v => new FontDincCustomBinding(v));
        registry.RegisterCustomBindingFactory<View>(
                 "ImageResize",
                 v => new ImageResizeCustomBinding(v));
        base.FillTargetFactories(registry);
    }

    protected override IMvxPluginConfiguration GetPluginConfiguration(Type plugin)
    {
        if (plugin == typeof(MvvmCross.Plugins.DownloadCache.Droid.Plugin))
        {
            return new MvvmCross.Plugins.DownloadCache.Droid.MvxDownloadCacheConfiguration()
            {
                CacheName = "Pictures.MvvmCross",
                CacheFolderPath = "../Library/Caches/Pictures.MvvmCross/",
                MaxFiles = 500,
                MaxFileAge = TimeSpan.FromDays(1),
                MaxInMemoryBytes = 4000000, // 4 MB
                MaxInMemoryFiles = 1,
                MaxConcurrentDownloads = 10,
                DisposeOnRemoveFromCache = false
            };
        }

        return null;
    }
}

可能导致此问题的原因是什么?

1 个答案:

答案 0 :(得分:3)

我没有使用任何自定义视图就有异常。只是尝试清理项目,它解决了我的问题,但仍然有点让我害怕使用Xamarin。