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.
Réponses:
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 ...
la source
Cette méthode suivante a fonctionné pour moi
project
et sélectionnezproperties
Java Build Path
->Order and Export
"Android Dependencies"
clean your project
et courezla source
project
? Qu'est-ce que ça veut dire?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
clean
et lesinvalidate cash/restart
opé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:
J'espère que cela épargnera à quelqu'un le temps perdu et la frustration que j'ai dû endurer.
la source
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.
la source
Si vous utilisez Eclipse, essayez Project -> Clean
la source
Si vous avez ajouté un nouveau en
Library Project
tant que module à votre projet Android et que vous l'utilisezKotlin
dans votre bibliothèque, n'oubliez pas d'ajouteren 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. :)
la source
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.
la source
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 Build→Rebuild Project.
Cliquez ensuite sur le bouton Exécuter ou MAJ + F10
la source
Pour tous ceux qui ont activé le multidex, écrivez ceci
à l'intérieur de build.gradle
écris un cours
EnableMultiDex
comme ci-dessouset en
AndroidManifest.xml
écrivant ce nom de classe dans la balise Applicationla source
MultiDexApplication
classe au lieu deApplication
.MultiDexApplication
et l'exception a disparu sur Android 4.4.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
Pour les utilisateurs de Windows, consultez cet outil que j'ai créé pour faciliter le processus
la source
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:
la source
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 :-)
la source
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.
la source
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.la source
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.
la source
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 ~
la source
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 .....
la source
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.
la source
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))la source
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.
la source
Solution mentionnée ici -> La solution Multidex Issue a fonctionné pour moi. Voici ce qui doit être ajouté au contexte de l'application:
la source
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.classpath
avant qu'il ne cesse de fonctionner.J'ai AJOUTÉ la ligne:
C'est la version finale:
Maintenant ça marche! =)
la source
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.
la source
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
la source
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:
Le problème est apparu lorsque je l'ai changé en ceci (versionCode 2 et versionName 0.0.1):
J'ai résolu le problème en passant à versionCode 2 et versionName 1.0.0.1, comme ceci:
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
la source
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é.
la source
Dans notre cas, nous voulions compiler la version Vagrant et avons eu la même erreur. Nous l'avons corrigé par
clean project
etrebuild project
dans le menu Buildla source
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 :)
la source
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.
la source
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.
la source