Android ClassNotFoundException: classe introuvable sur le chemin

97
10-22 15:29:40.897: E/AndroidRuntime(2561): FATAL EXCEPTION: main
10-22 15:29:40.897: E/AndroidRuntime(2561): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.gvg.simid/com.gvg.simid.Login}: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.os.Looper.loop(Looper.java:137)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.reflect.Method.invokeNative(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.reflect.Method.invoke(Method.java:525)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at dalvik.system.NativeStart.main(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
10-22 15:29:40.897: E/AndroidRuntime(2561):     ... 11 more

Je ne sais pas vraiment ce qui le cause car il est correctement répertorié dans le manifeste:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.gvg.simid"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.READ_OWNER_DATA" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-feature android:name="android.hardware.usb.host" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.gvg.simid.Login"
            android:label="@string/app_name" 
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

J'ai également ajouté "Bibliothèques privées Android" pour construire le chemin, et je l'ai déplacé en haut de "Commander et exporter", mais cela m'a toujours donné la même erreur.

EDIT: J'ai reconstruit complètement le projet et je n'ai pas pu reproduire l'erreur. Je ne sais pas ce qui en était la cause.

Phito
la source
2
utilisez-vous proguard?
Juangcg
Proguard n'est pas activé.
Phito
Consultez cet article: stackoverflow.com/questions/10866431/…
Juangcg
essayez ".Login" dans android: nom à la place, Android ajoutera le reste du préfixe par lui-même s'il ne peut pas le détecter. Cela pourrait juste être un problème d'analyse étrange avec Eclipse
Darryl Bayliss
@Juangcg J'ai lu cet article avant de créer celui-ci, mais malheureusement, tout ce que j'ai essayé à partir de là n'a pas fonctionné.
Phito

Réponses:

76

J'ai eu le même problème pour mon projet. Cela s'est produit en raison du conflit dans la version de la bibliothèque de support Android entre mon projet et le projet de bibliothèque que j'ai ajouté à mon projet. Mettez la même version de la bibliothèque de support Android dans votre projet et les projets de bibliothèque que vous avez inclus et nettoyez la construction ... Tout fonctionnera ...

Balaji Dhanasekar
la source
3
Merci mec!!! J'étais sûr de l'avoir déjà fait, mais j'ai vérifié et les versions étaient différentes! Merci beaucoup!
Rodrigo Venancio
2
Je commente ceci pour m'en souvenir la prochaine fois pour "mettre à jour" sdk, regardez cette réponse
Enrique San Martín
1
Des idées sur les raisons pour lesquelles des problèmes surviennent si je n'utilise pas les bibliothèques de support?
Budda
33

Cette méthode suivante a fonctionné pour moi

  • Faites un clic droit sur votre project et sélectionnezproperties
  • Le panneau "Propriétés pour" s'ouvre. Dans le menu de gauche, allez àJava Build Path ->Order and Export
  • Dans la liste ci-dessous, décochez la case à côté de "Android Dependencies"
  • Enfin clean your projectet courez
Chris
la source
8
Cela a fonctionné pour moi. Quelle est la signification de "Dépendances Android" et pourquoi cela a-t-il aidé dans ce cas particulier?
Oleg Gryb
A parfaitement fonctionné pour moi! Merci beaucoup!
prajitdas
7
Ces instructions concernent-elles l'éclipse? Je ne peux pas suivre ces instructions pour Android Studio. Quel est mon project? Qu'est-ce que ça veut dire?
Adam Johns
1
Oui, ces instructions sont pour eclipse
Chris
2
Ce lien contient des étapes pour Android Studio stackoverflow.com/questions/18533054/…
Joseph Selvaraj
13

Pour ceux d' entre vous qui rencontrez ce problème sur Android studio, j'ai eu le même problème après une fusion et pour une raison encore persistait après cleanet les invalidate cash/restartopérations qui me rendait fou.

Il s'avère que cela peut être corrigé en exécutant gradle build une fois à partir de la ligne de commande. Exécutez simplement ce qui suit dans le répertoire du projet:

./gradlew assemble clean
./gradlew assemble

J'espère que cela épargnera à quelqu'un le temps perdu et la frustration que j'ai dû endurer.

Iman Akbari
la source
A travaillé pour moi aussi
davedavedave
12

J'ai eu le même problème, cela a fonctionné pour moi

1) Chemin complet de l'activité dans mainfest à la place du chemin relatif.

2) Supprimez le dossier 'build' et nettoyez le projet.

Ram Mehar Deswal
la source
La suppression du dossier de construction a fonctionné pour moi. J'ai perdu quelques heures sur ce numéro, Merci
Guy S
A travaillé pour moi aussi. Merci.
Dushyant Suthar
C'est la vraie affaire. XD
noob-Sci-Bot
9

Si vous utilisez Eclipse, essayez Project -> Clean

Danilo Silva
la source
Fonctionne pour Android Studio - Projet Nettoyer / Reconstruire et exécuter
Frcake
8

Si vous avez ajouté un nouveau en Library Projecttant que module à votre projet Android et que vous l'utilisez Kotlindans votre bibliothèque, n'oubliez pas d'ajouter

apply plugin: 'kotlin-android'

en haut du fichier Gradle de votre module. Android Studio n'ajoute pas cette ligne lorsque vous avez créé un nouveau module et cela peut vous faire perdre des heures comme moi.

Edit: Après un certain temps, je me suis à nouveau battu avec ce problème et cette fois j'ai oublié d'ajouter mon module en tant que dépendance du projet. :)

enregistrer la population
la source
Je l'ai résolu pour moi et je voulais juste poster une réponse. Qui passe à la page deux sur SO pour une solution?
Kuno
Ce problème se produit lorsque nous utilisons le projet de bibliothèque Java ... cette solution a résolu mon problème
Devrath
Cela m'a aidé, merci :)
Sreekanth Karumanaghat
7

Cela se produit si nous modifions le chemin de construction de l'application, cela peut être dans tous les cas d'ajout ou de suppression ou de modification de bibliothèques ou de fichier .jar. La meilleure solution est de redémarrer l'Eclipse.

pionnierBhawna
la source
6

Si vous obtenez cette erreur lors de l'utilisation de la nouvelle fonctionnalité Instant Run dans Android Studio 2.0 et supérieur, il s'agit d'une sorte de bogue de leur côté.
Pour résoudre ce problème, vous devrez arrêter votre application manuellement sur l'appareil / l'émulateur si elle n'est pas arrêtée, puis dans Android Studio, sélectionnez BuildRebuild Project.
Cliquez ensuite sur le bouton Exécuter ou MAJ + F10

vovahost
la source
6

Pour tous ceux qui ont activé le multidex, écrivez ceci

à l'intérieur de build.gradle

apply plugin: 'com.android.application'

android {
 defaultConfig {
      multiDexEnabled true
  }
 dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:multidex:1.0.1'
}

écris un cours EnableMultiDexcomme ci-dessous

import android.content.Context;
import android.support.multidex.MultiDexApplication;

public class EnableMultiDex extends MultiDexApplication {
    private static EnableMultiDex enableMultiDex;
    public static Context context;

    public EnableMultiDex(){
        enableMultiDex=this;
    }

    public static EnableMultiDex getEnableMultiDexApp() {
        return enableMultiDex;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();

    }
}

et en AndroidManifest.xmlécrivant ce nom de classe dans la balise Application

 <application
    android:name="YourPakageName.EnableMultiDex"
    android:hardwareAccelerated="true"
    android:icon="@drawable/wowio_launch_logo"
    android:label="@string/app_name"
    android:largeHeap="true"
    tools:node="replace">
Manohar Reddy
la source
ohhhhh mahn ... réponse parfaite..J'ai vu cette réponse mais personne n'a voté, alors j'ai négligé cela et je suis allé chercher des réponses votées mais pas travaillé..enfin, je viens de tester celle-ci et je l'ai eu, merci mahn. :) :) :) :)
Sachin Varma
Heureux que cela ait aidé :)
Manohar Reddy
2
Le point principal est d'étendre l'application à partir de la MultiDexApplicationclasse au lieu de Application.
VSB
Merci. J'avais déjà une application dans Manifest. Il a été étendu MultiDexApplicationet l'exception a disparu sur Android 4.4.
CoolMind
6

Si vous utilisez Multidex sur Android 4.4 et versions antérieures, votre problème peut être que votre classe d'activité est située dans le deuxième fichier dex et donc introuvable par le système Android.

Pour conserver votre classe d'activité dans le fichier dex principal, consultez cette page:

https://developer.android.com/studio/build/multidex.html#keep


Pour trouver quelles classes se trouvent dans un fichier dex, utilisez Android Studio .

Faites simplement glisser et déposez votre apk dans Android Studio. Vous devriez pouvoir voir vos fichiers dex dans l'explorateur apk.

Sélectionnez ensuite le fichier dex pour voir quelles classes sont à l'intérieur.


une autre alternative est dexdump:

Vous pouvez vérifier le contenu de vos fichiers dex contenus dans votre apk en utilisant la commande dexdump qui se trouve dans

android-sdk / build-tools / 27.0.3 / dexdump

Pour les utilisateurs de Windows, consultez cet outil que j'ai créé pour faciliter le processus

BenBenMushi
la source
1
Lorsque vous liez votre propre outil, assurez-vous de déclarer que vous le possédez .
LW001
5

Dans mon cas, c'est le processus de minification proguard qui a supprimé certaines classes importantes de mon apk de production.

La solution consistait à modifier le fichier proguard-rules.pro et à ajouter ce qui suit:

-keep class com.someimportant3rdpartypackage.** { *; }
Sois libre
la source
3

1) Créez un dossier libs sous la racine du projet
2) Copiez et collez le fichier jar dedans
3) Configurez le chemin de construction (Ajouter un jar)
4) Nettoyez et exécutez

cheers :-)

Mohanraj Balasubramaniam
la source
3

Croyez-moi ou non ... J'ai essayé presque toutes les réponses que j'avais trouvées ici sur stackoverflow. Rien n'aiderait, jusqu'à ce que je redémarre la machine. Mon Android Studio fonctionne sur Ubuntu 16.04 LTS.

Piotr Miller
la source
Idem ici, tout essayé et recommencez après votre commentaire. J'ai vu dans ma sortie une référence à un nom de classe refactorisé qui "Impossible de trouver" malgré l'effacement de tout le dossier de construction .. Je viens de démarrer android
Alwin Kesler
2

J'ai rencontré cette erreur une fois lorsque j'ai défini une classe qui étendait une vue mais qui faisait référence à cette vue personnalisée dans le fichier de mise en page avec le mauvais nom. Au lieu de <com.example.customview/>, j'avais inclus <com.customview/>dans le fichier de mise en page XML.

Prix
la source
2

J'ai rencontré le même problème et je l'ai résolu en procédant comme suit:

Dans le menu de construction, sélectionnez

1- projet propre.

2- Construisez l'APK.

Aaeb
la source
Je passe toujours des heures à chercher une solution sur SO et il s'avère que Clean -> Build est tout ce que j'avais à faire.
Shishir Shetty
2

J'ai rencontré le même problème et j'ai remarqué que l'exemple de code était placé dans le répertoire "java" au lieu du répertoire "src". Après avoir déplacé le code vers src, le problème a été résolu.

Assurez-vous également que le répertoire de l'application est divisé en plusieurs dossiers. par exemple /main/com/site/appname/pas/main/com.site.appname/

J'espère que ça marche ~

weiweia
la source
Vous avez cloué le problème que j'avais sur la tête! Pas assez de sommeil,
je
2

Je suis confronté au même problème, et après beaucoup de travail et de recherche, j'ai trouvé la solution: je viens de nettoyer le projet puis de créer l'apk. -Build-> Clean Project -Build-> Build APK (s) J'espère que c'est utile .....

Mohamad Abdallah
la source
1

J'ai eu ce problème récemment et j'utilise Android Studio 0.8.4

Le problème était le fait que j'ai décidé de renommer un fichier de disposition de menu XML qui s'appelait main.xml.

Faites un clic droit dessus et choisissez Refactoriser -> Renommer . Avant de le renommer, assurez-vous de décocher "Rechercher dans les commentaires et les chaînes" et d'avoir appuyé sur Refactor .

Parce que mon fichier a été nommé à l'origine «main» , il a renommé les chemins critiques dans app.iml et build.gradle, principalement les java.srcDirs dans build.gradle, car le chemin est défini comme 'src/main/java'.

J'espère que cela aidera toute personne susceptible de rencontrer ce problème.

GoranZarkovic
la source
1

J'ai eu ce problème après la mise à niveau à partir de la version 18. Après la mise à niveau, j'ai eu ce qui suit: Project Build Target était 5.01, targetSDKVersion = 21

Mais: outils de construction provenaient toujours d'Android 4.3.1 (18) Ce que j'ai remarqué, c'est que les applications qui dérivaient leurs activités d'ActionBarActivity se bloquaient avec l'erreur ci-dessus, celles qui ne fonctionnaient pas encore.

Le correctif simple consistait donc à utiliser le dernier Android SDK Build Tools 21.1.2 au lieu de ceux d'Android SDK Build Tools 18, ce qui semble en quelque sorte la valeur par défaut.

Le coupable semble donc la bibliothèque Appcompat, que j'utilise pour la compatibilité descendante d'Actionbar.

Et au fait : en utilisant la bibliothèque appcompat, j'ai dû définir / réparer: $SDKInstallDIR$\Android\android-sdk\extras\android\support\v7\appcompat\project.properties target=android-21(ce qui a été recommandé dans un autre article utile et qui a une valeur de 19 par défaut))

Peter Rudnik
la source
1

J'ai eu le même problème sous Windows. J'avais renommé le chemin du projet en quelque chose contenant un espace.

Assurez-vous que le chemin d'accès à votre projet ne contient pas d'espace.

Vincent Hubert
la source
De quel chemin parlez-vous?
Quality Catalyst
1

Solution mentionnée ici -> La solution Multidex Issue a fonctionné pour moi. Voici ce qui doit être ajouté au contexte de l'application:

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}
Pranaysharma
la source
0

J'ai eu ce problème, soulevé par plusieurs causes, mais je vois cela dans votre stacktrace " **Unable to instantiate activity ComponentInfo{...}: java.lang.ClassNotFoundException: Didn't find class "..." on path: DexPathList[[**", j'ai trouvé une différence dans mon .classpathavant qu'il ne cesse de fonctionner.

 <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

J'ai AJOUTÉ la ligne:

<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>

C'est la version finale:

  <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

Maintenant ça marche! =)

Jorgesys
la source
0

J'ai eu exactement le même problème. Comme @weiweia l'a suggéré, déplacer le code du répertoire java vers src a fonctionné pour moi. J'ai également supprimé les dépendances Android de Projet -> Propriétés -> Chemin de construction Java -> Ordre et exportation, et me suis assuré d'inclure uniquement les projets de bibliothèque dans l'écran Android.

son.io
la source
0

J'ai eu ce problème pendant un bon moment, et comme tout le monde les réponses ci-dessus ne s'appliquaient pas à mon projet.

Dans mon projet, j'avais lié un projet à mon projet et il lançait ClassDefNotFoundError à chaque fois qu'un code pour l'autre projet était exécuté.

C'était donc ma solution. Je suis allé aux propriétés du projet de mon projet et à Java Build Path. J'ai appuyé sur l'onglet "Source" et la "source de lien" du dossier src de l'autre projet vers mon propre projet et j'ai nommé un nouveau dossier "core-src".

Espère que cette solution aide quelqu'un

user3906863
la source
0

J'ai eu le même problème. J'utilise Xamarin.Android.

Le problème dans mon cas était que j'ai changé le versionCode et versionName.

Je n'ai eu aucun problème quand je les ai installés comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="pac.ka.ge" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">

Le problème est apparu lorsque je l'ai changé en ceci (versionCode 2 et versionName 0.0.1):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="0.0.1" android:installLocation="auto">

J'ai résolu le problème en passant à versionCode 2 et versionName 1.0.0.1, comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="1.0.0.1" android:installLocation="auto">

Je ne sais pas pourquoi c'était un problème, peut-être qu'Android n'aime pas un nom de version inférieur avec un code version supérieur?

J'ai trouvé ce qui suit sur http://developer.android.com/guide/topics/manifest/manifest-element.html#vname

android: versionCode Un numéro de version interne. Ce numéro est utilisé uniquement pour déterminer si une version est plus récente qu'une autre, avec des nombres plus élevés indiquant des versions plus récentes. Ce n'est pas le numéro de version montré aux utilisateurs; ce nombre est défini par l'attribut versionName. La valeur doit être définie sous la forme d'un entier, tel que «100». Vous pouvez le définir comme vous le souhaitez, à condition que chaque version successive ait un numéro plus élevé. Par exemple, il peut s'agir d'un numéro de build. Ou vous pouvez traduire un numéro de version au format «xy» en un entier en codant les «x» et «y» séparément dans les 16 bits inférieurs et supérieurs. Ou vous pouvez simplement augmenter le nombre de un à chaque fois qu'une nouvelle version est publiée.

android: versionName Le numéro de version affiché aux utilisateurs. Cet attribut peut être défini comme une chaîne brute ou comme une référence à une ressource de chaîne. La chaîne n'a d'autre but que d'être affichée aux utilisateurs. L'attribut versionCode contient le numéro de version significatif utilisé en interne.

PeterH
la source
0

Juste au cas où quelqu'un serait confronté au même problème que moi et qu'aucune réponse suggérée ne serait utile.

Pour moi, la cause était que le refactor du studio Android est bogué. J'ai déplacé une classe interne en dehors d'une classe, qui était une vue et qui avait donc également un xml, où le chemin direct était défini. Ce chemin ne sera pas remanié par le studio! Et aucune erreur ne sera générée.

J'espère que cela aide n'importe qui. À votre santé.

JacksOnF1re
la source
0

Dans notre cas, nous voulions compiler la version Vagrant et avons eu la même erreur. Nous l'avons corrigé par clean projectet rebuild projectdans le menu Build

Rafael
la source
0

Je viens de redémarrer l'appareil et d'exécuter l'application. Cela a fonctionné sans aucun problème. J'espère que cela aide quelqu'un :)

Kameswari
la source
0

J'ai trouvé cette erreur dans Android Studio lorsque j'ai essayé de déboguer sur un appareil avec l' API 23 , j'ai donc vérifié Android Studio et j'ai remarqué que je n'avais pas installé cette version de l'API 23 . Après l'installation, j'ai résolu le problème.

Rodrigo Celebrone
la source
0

J'ai eu ce problème plusieurs fois et souvent je n'ai pas fait quelque chose de manifestement mal avec les dépendances.

C'est toujours une bonne idée de vérifier si cette classe «non trouvée» est présente dans l'apk final. Si c'est le cas, comme c'est arrivé dans mon cas, le problème est généralement:

Ce n'est pas que la classe donnée est introuvable, mais elle ne peut pas être chargée car sa super classe est manquante.

Vérifiez si la classe que vous étendez est disponible, puis essayez de corriger votre script de construction ou vos dépendances en conséquence.

michalbrz
la source