Je sais que cette question a été posée un million de fois et pourtant, je n'ai pas trouvé la réponse à ma situation spécifique. J'ai une bibliothèque qui contient tout le code, et quelques autres modules qui importent la bibliothèque.java.lang.RuntimeException: impossible d'instancier l'application. ClassNotFoundException: n'a pas trouvé la classe
-project
--mylibrary
---sr/main/java
----co/android/mylibrary
----BaseApp (extends MultidexApp)
--Application1
---sr/main/java
----co/android/app2
-----Android Manifest
--Application2
---sr/main/java
----co/android/app2
-----Android Manifest
Et les deux manifestes utilisent l'application de base comme ceci.
<application
android:name="co.android.mylibrary.BaseApp"
android:allowBackup="false"
android:fullBackupContent="false"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/AppTheme"
tools:replace="android:icon,android:theme, android:allowBackup">
Et les dépendances de construction ressemblent à ceci:
dependencies {
releaseCompile project(path: ':mylibrary', configuration: 'release')
debugCompile project(path: ':mylibrary', configuration: 'debug')
}
méthode de mon application de base pour initialiser multidex:
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
try {
MultiDex.install(this);
}catch (RuntimeException e){}
}
Certains de mes règles ProGuard, que je l'ai ajouté à la fois emplacements (bibliothèque et application). Ceux-ci n'incluent pas certaines règles pour les bibliothèques tierces et certaines de mes propres classes.
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.view.View
-keep public class co.android.mylibrary.data.greendao.**{ *; }
Ainsi, l'application fonctionne très bien sur mon s8, mais ne pas sur certains téléphones comme le moto G. Ils seraient également fonctionner très bien si Proguard est activé et que ses ressources de rétrécissement, comme pour la libération construit. Un autre comportement étrange que j'ai remarqué est que, quand je place mon point d'arrêt sur certaines parties de mon code et que j'exécute les builds de release (avec debuggable réglé sur true), ça casse sur le s8, mais pas sur la moto.
Pourquoi ce comportement étrange? Une autre question que j'ai trouvé super similaire est unable to instantiate application - ClassNotFoundException. Mais toujours pas de résolution.
Ceci est le journal complet de l'erreur. Ignorez les noms de package.
Modifier
Après avoir changé la façon dont je compile la bibliothèque sur ma demande, sur la base de suggestiongs @Mostafa Anter:
compile project(path: ':mylibrary', configuration: 'debug')
Il a commencé à me donner cette erreur. J'ai ma course instantanée désactivée.
pouvez-vous afficher les détails logcat de ClassNotFoundException? – JRG