2017-01-11 2 views
1

Ich habe ein Xamarin-Projekt, das seit einiger Zeit funktioniert. Wir haben vor kurzem (vor ein paar Monaten) MultiDex aktivieren müssen. Aus irgendeinem Grund hat es sich gestern geweigert, auf Geräten mit Android 4.2 zu arbeiten. Das hatte gut funktioniert und ich bin mir nicht sicher, was sich geändert hat, um es zu beeinflussen. Wir sehen diese Nachricht im Android log:MultiDex für Android 4.2

> 01-10 08:12:09.903 E/AndroidRuntime(20781): FATAL EXCEPTION: main 
> 01-10 08:12:09.903 E/AndroidRuntime(20781): 
> java.lang.RuntimeException: Unable to instantiate application 
> mono.android.app.Application: java.lang.ClassNotFoundException: Didn't 
> find class "mono.android.app.Application" on path: 
> /data/app/com.afs.dsd_mobile-1.apk 

Von dem, was ich dies ist aufgrund der Anwendungsklasse sagen kann, in der falschen classes.dex-Datei aufgelistet werden. Dies basiert auf, was ich hier lesen: http://www.jon-douglas.com/2016/09/05/xamarin-android-multidex/

Allerdings, wenn ich das mainClassesDex.bat ändern, wie vorgeschlagen, ist es nicht das Problem zu beheben. Fehle ich etwas?

+0

http: // Stackoverflow .com/questions/26925264/android-support-multidex-library-implementation – Hamidreza

+0

Haben Sie versucht, 'android.support.multidex.MultiDexApplication' für Ihren' MultiDex' zu verwenden, wie in dem von Ihnen geposteten Blog erwähnt? –

+0

Da es versucht, "mono.android.app.Application" auf der Dex-Liste zu finden, schlägt es vor, was Elvis Xia vorschlägt und auch, dass Sie nicht die richtigen Startup-Klassen in Ihrem 'classes.dex' definiert haben (Main dex Liste). In meinem Blog erfahren Sie, wie Sie diese Werte überschreiben können. http://www.jon-douglas.com/2016/09/23/xamarin-android-multidex-keep/ Bitte beachten Sie, dass der einfachste Weg, um eine allgemeine Idee für Ihre Datei "multidex.keep" zu erhalten, ist es lassen es erzeugt wie normal und dann kopieren Sie das in Ihre benutzerdefinierte 'multidex.keep'. Sie können dann die benötigten Klassen in der Hauptliste hinzufügen/subtrahieren. –

Antwort

1

Dieser Artikel ist für mich funktioniert: https://przemekraciborski.eu/2016/09/30/multidex-in-xamarin

neue Textdatei hinzufügen zu projizieren (ex multidex.keep.), Setzen es ist Action bauen auf „MutliDexMainDexList“:

md526383ae8de55e54b0b30f6a8bd5184a3\ThisApplication.class 
md576a02dcd2afe330a5b70333d32546ae9\LoginActivity.class 
mono/android/app/ApplicationRegistration.class 
mono/android/app/NotifyTimeZoneChanges.class 
mono/MonoRuntimeProvider.class 
mono/MonoPackageManager.class 
mono/MonoPackageManager_Resources.class 
+0

diese Lösung hat für mich funktioniert – Sam

Verwandte Themen