Crash: java.lang.NoClassDefFoundError: android.de soutien.v7.appcompat.R$layout
Certains utilisateurs de mon application rencontrez ce crash, il semble peut-être être liés à des appareils Samsung. Quelqu'un d'autre a rencontré ce problème et trouvé une solution?
java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$layout
at android.support.v7.app.ActionBarActivityDelegateBase.ensureSubDecor(ActionBarActivityDelegateBase.java:297)
at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:225)
at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
at com.afollestad.impression.ui.MainActivity.onCreate(MainActivity.java:160)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2359)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2453)
at android.app.ActivityThread.access$900(ActivityThread.java:173)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5579)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(NativeStart.java)
Ligne de 160 jeux de l'Activité, en vue de contenu. Le contenu de la vue est ceci:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.afollestad.lessen.ui.MainActivity"
android:fitsSystemWindows="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="?popup_theme" />
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<FrameLayout
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:layout_gravity="start">
<fragment
android:id="@+id/navigation_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.afollestad.impression.fragments.NavDrawerFragment"
tools:layout="@layout/fragment_navdrawer"
android:tag="NAV_DRAWER" />
</FrameLayout>
</android.support.v4.widget.DrawerLayout>
Le fragment est une liste simple fragment.
Pouvez-vous montrer le code? fondamentalement, le point de ce qui est MainActivity.java:160?
Avez-vous utilisé l'obfuscation? (Proguard)
Je n'ai pas, pas de
Ohk... viens de trouver ceci thread. :/. et this la solution, mais qui fonctionne pour cause de proguard rétrécir surtout :/
merci, cela me conduire dans la bonne direction
Avez-vous utilisé l'obfuscation? (Proguard)
Je n'ai pas, pas de
Ohk... viens de trouver ceci thread. :/. et this la solution, mais qui fonctionne pour cause de proguard rétrécir surtout :/
merci, cela me conduire dans la bonne direction
OriginalL'auteur afollestad | 2014-12-23
Vous devez vous connecter pour publier un commentaire.
Je sais que le problème a été résolu, mais si vous arrivez sur ce fil, il se pourrait qu'il n'a pas de résoudre votre problème en une combinaison particulière:
Il m'est arrivé et j'ai cherché pendant 3 heures. J'espère que ça aidera certains.
Pour activer MultiDex sur 4.x appareils, il ne suffit pas de modifier le build: vous avez une classe de la
Application
classe. Il suffit de suivre que et queEspère que cela aide.
Vous avez montré une bonne réponse. Merci Laurent.
OriginalL'auteur Laurent Meyer
J'ai résolu le problème en utilisant Proguard avec la configuration suivante:
Pour permettre Proguard avec des versions plus récentes de Gradle (dans Android Studio):
proguard-règles.pro est l'endroit où les propriétés en haut aller.
MERCI!!!! Ive été la recherche d'une solution à ce problème pendant une heure et ce est la façon la plus simple à mettre en œuvre proguard sans avoir à inclure l'ensemble de mes bibliothèques.
OriginalL'auteur afollestad
Si vous utilisez multidex dans votre application, étendre votre classe d'Application de MultiDexApplication
OriginalL'auteur Gurgen Hakobyan
si vous êtes à l'aide de l'api compat soutien-v7, toutes les bibliothèques dont la référence doit être marqué exclure module: soutien-v4"
par exemple:
compiler('com.android.support:cardview-v7:22.2.0') {
exclure module: soutien-v4"
}
OriginalL'auteur Anton Rifco Susilo