Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NotSupportedException Could not activate JNI Handle - MvvmCross

I recently updated MvvmCross from 3.5.1 to 4.1.4 in my project and published the app update along with it.

After that, I see from Xamarin Insights that, a lot of users experience;

Could not activate JNI Handle 0xffb35af8 (key_handle 0xe888654) of Java type 'md53997af0c1a24144057e197743f9f827a/HomeView' as managed type 'package.name.HomeView' on almost all of the activities with their respective activity names. All these activities are MvxActivities.

My 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;
    }
}

What could be causing this issue?

like image 914
Can Canbek Avatar asked May 31 '16 08:05

Can Canbek


1 Answers

I had that exception without using any custom view. Just try to clean the project, it solved my issue, however still that kind of thing scares me from using Xamarin.

like image 145
Yigit Alp Ciray Avatar answered Oct 24 '22 22:10

Yigit Alp Ciray