2017-01-11 3 views
1

У меня есть проект Xamarin, который работал некоторое время. Недавно (несколько месяцев назад) пришлось включить MultiDex. По какой-то причине вчера он начал отказываться работать на устройствах с Android 4.2. Это работало нормально, и я не уверен, что изменилось, чтобы повлиять на него. Мы видим, что это сообщение в журнале Android:MultiDex для 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 

Из того, что я могу сказать, что это происходит из-за класс приложения быть перечислены в неправильном classes.dex файле. Это основано на том, что я прочитал здесь: http://www.jon-douglas.com/2016/09/05/xamarin-android-multidex/

Однако, когда я модифицировать mainClassesDex.bat как это было предложено, это не решает проблему. Я что-то упускаю?

+0

HTTP: // StackOverflow .com/questions/26925264/android-support-multidex-library-implementation – Hamidreza

+0

Вы пытались использовать 'android.support.multidex.MultiDexApplication' для своего' MultiDex', как указано в блоге, который вы опубликовали? –

+0

Увидев, что он пытается найти «mono.android.app.Application» в списке dex, он предлагает, что предлагает Элвис Ся, а также что у вас могут не быть подходящие классы запуска, определенные в вашем 'classes.dex' (Main dex список). Вы можете просмотреть мой блог о том, как переопределить эти значения. http://www.jon-douglas.com/2016/09/23/xamarin-android-multidex-keep/ Обратите внимание, что самый простой способ получить общую идею для вашего файла 'multiidex.keep' - это позволить он генерируется в соответствии с нормальным, а затем копирует его в пользовательский 'multidex.keep'. Затем вы можете добавить/вычесть классы, которые вам нужны в основном списке. –

ответ

1

Эта статья работает для меня: https://przemekraciborski.eu/2016/09/30/multidex-in-xamarin

Добавить новый текстовый файл проекта (бывший multidex.keep.), Установить его строить действие на «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

это решение работало для меня – Sam

Смежные вопросы