2016-05-31 18 views
6

Ho aggiornato di recente MvvmCross da 3.5.1 a 4.1.4 nel mio progetto e ho pubblicato l'aggiornamento dell'applicazione insieme ad esso.NotSupportedException Impossibile attivare JNI Handle - MvvmCross

Dopo questo, vedo da Xamarin Insights che, molti utenti sperimentano;

Could not activate JNI Handle 0xffb35af8 (key_handle 0xe888654) of Java type 'md53997af0c1a24144057e197743f9f827a/HomeView' as managed type 'package.name.HomeView' su quasi tutte le attività con i rispettivi nomi di attività. Tutte queste attività sono MvxActivities.

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

cosa potrebbe causare questo problema?

+0

Puoi forse mostrare uno di quegli Activites? E forse il tuo setup.cs? Molte cose sono cambiate con 4, quindi forse c'è qualcosa di sbagliato nelle intestazioni di attività o così. – Cyriac

+0

A parte gli spazi dei nomi e le cose relative allo spazio dei nomi, non ho cambiato nulla in Setup.cs, ma posso aggiungerlo alla domanda. Anche le intestazioni di attività non hanno nulla di specifico tranne un'etichetta e l'orientamento dello schermo. –

+0

E sembra solo con alcuni utenti, tu stesso non hai questo problema? – Cyriac

risposta

2

Ho avuto quell'eccezione senza utilizzare alcuna vista personalizzata. Basta provare a pulire il progetto, ha risolto il mio problema, tuttavia ancora quel genere di cose mi spaventa dall'usare Xamarin.