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 suis pas vraiment sûr de 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 créer le chemin et je l'ai déplacé en haut de "Ordre et exportation", mais cela m'a quand même donné la même erreur.
EDIT: J'ai complètement reconstruit le projet et je n'ai pas pu reproduire l'erreur. Pas sûr de ce qui le causait.
J'ai eu le même problème pour mon projet. Cela est dû à un 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 bibliothèque de support Android dans votre projet et les projets de bibliothèque que vous avez inclus et la construction propre ... Tout fonctionnera ...
Cette méthode suivante a fonctionné pour moi. Faites un clic droit sur votre project
et sélectionnez properties
. Le panneau "Propriétés pour" s'ouvrira. Dans le menu de gauche, sélectionnez Java Build Path
-> Order and Export
. Dans la liste ci-dessous, décochez la case en regard de "Android Dependencies"
. Enfin clean your project
et exécuter.
Esperons que ça marche
Pour ceux d'entre vous qui ont ce problème sur Android Studio, j'ai eu le même problème après une fusion et pour une raison quelconque, il a même persisté après les opérations clean
et invalidate cash/restart
qui me rendaient fou.
En fin de compte, il peut être corrigé en exécutant Gradle Build une fois à partir de la ligne de commande Exécutez simplement le répertoire suivant du projet:
./gradlew assemble clean
./gradlew assemble
J'espère que cela épargnerait à quelqu'un le temps perdu et la frustration que je devais subir.
Si vous utilisez Eclipse, essayez Project -> Clean.
J'ai eu le même problème, cela a fonctionné pour moi
1) Chemin d’activité complet dans le manifeste à la place du chemin relatif.
2) Supprimez le dossier 'build' et nettoyez le projet.
Cela se produit si nous modifions le chemin de construction de l'APP. Cela peut être dans tous les cas l'ajout, la suppression ou la modification de bibliothèques ou le fichier .jar. La meilleure solution consiste à Redémarrez Eclipse.
Si vous obtenez cette erreur lors de l'utilisation de la nouvelle fonctionnalité Instant Run dans Android Studio 2.0 et versions ultérieures, il s'agit d'une sorte de bogue de leur côté.
Pour résoudre ce problème, vous devrez arrêter manuellement votre application sur Device/Emulator 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 SHIFT + F1
Pour ceux qui ont multidex permettre, écrivez ceci
à l'intérieur 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'
}
écrire une classe EnableMultiDex
comme 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 dans AndroidManifest.xml
écrivez ceci className inside tag 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">
Dans mon cas, c’est le processus de minification proguard qui a supprimé certaines classes importantes de mon apk de production.
La solution consistait à éditer le fichier proguard-rules.pro et à ajouter ce qui suit:
-keep class com.someimportant3rdpartypackage.** { *; }
1) Créer le dossier libs sous la racine du projet
2) Copiez et collez le fichier jar dans le fichier.
3) Configurer le chemin de construction (Ajouter un fichier jar)
4) Nettoyer et courir
à votre santé :-)
Si vous utilisez Multidex sur Android 4.4 et versions antérieures, le problème peut être que votre classe d'activité se situe dans le deuxième fichier dex et n'est donc pas détectée par le système Android.
Pour conserver votre classe d'activité dans le fichier dex principal, voir cette page:
https://developer.Android.com/studio/build/multidex.html#keep
Pour rechercher les classes situées dans un fichier dex , utilisez Android Studio.
Il suffit de faire glisser votre apk dans Android Studio. Vous devriez pouvoir voir vos fichiers dex dans l'explorateur d'apk.
Ensuite, sélectionnez 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/outils de construction/27.0.3/dexdump
Pour les utilisateurs de Windows, voyez ceci outil que j'ai créé pour faciliter le processus.
J'ai rencontré cette erreur une fois lorsque j'ai défini une classe qui étendait une vue mais faisait référence à cette vue personnalisée dans le fichier de présentation avec un nom incorrect. Au lieu de <com.example.customview/>
, j’avais inclus <com.customview/>
dans le fichier de présentation XML.
Croyez-moi ou non ... j'ai essayé presque chaque réponse trouvée ici sur stackoverflow. Rien ne pourrait aider, jusqu'à ce que je viens de redémarrer la machine. Mon Android Studio fonctionne sur Ubuntu 16.04 LTS.
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 dans src, le problème a été résolu.
Assurez-vous également que le répertoire de l'application est divisé en plusieurs dossiers . /main/com/site/appname/
pas /main/com.site.appname/
J'espère que ça marche ~
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 présentation de menu XML appelé main.xml.
Faites un clic droit dessus et choisissez Refactor -> Renommer . Avant de le renommer, veillez à décocher"Rechercher dans les commentaires et les chaînes"et appuyez sur Refactor .
Étant donné que mon fichier s'appelait initialement 'main', il a renommé les chemins critiques dans app.iml et build.gradle, principalement les noms de fichier Java.srcDirs dans le fichier 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.
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.
J'ai eu ce problème après la mise à niveau à partir de la version 18 . Après la mise à niveau, j'avais les éléments suivants: Project Build Target était 5.01, targetSDKVersion = 21
Mais: Les outils de compilation étaient encore basés sur Android 4.3.1 (18) Ce que j’ai remarqué, c’est que les applications dérivant de leurs activités à partir de ActionBarActivity plantaient avec l’erreur susmentionnée celles qui ne fonctionnaient pas encore.
La solution simple consistait donc à utiliser les derniers Android SDK Build Tools 21.1.2 Au lieu de n'utiliser que ceux d'Android SDK Build Tools 18, qui semble en quelque sorte la valeur par défaut.
Le coupable semble donc être la bibliothèque Appcompat, que j'utilise pour la compatibilité vers l'arrière de la barre Action.
Et un à propos: en utilisant la bibliothèque appcompat, je devais définir/corriger: $SDKInstallDIR$\Android\android-sdk\extras\Android\support\v7\appcompat\project.properties
target=Android-21
(recommandé dans un autre article utile et ayant la valeur 19 par défaut))
La solution mentionnée ici -> Solution Multidex Issue a fonctionné pour moi. Vous trouverez ci-dessous ce qui doit être ajouté au contexte de l'application:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
J'ai rencontré le même problème et l'ai résolu en procédant comme suit:
Dans le menu de construction, sélectionnez
1- Projet propre.
2- Construire APK.
Juste au cas où quelqu'un ferait face au même problème que moi et ne suggérerait rien. Répondre ici aide.
Pour moi, la cause était que le refactor de studio Android est un buggy ..__ J'ai déplacé une classe interne en dehors d'une classe, qui était une vue et donc Avait également un xml, où le chemin direct était défini. Ce chemin ne sera pas Refactored par studio! Et aucune erreur ne sera jetée.
J'espère que cela aide n'importe qui. À votre santé.
J'ai eu ce problème pendant un bon bout de temps 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 renvoyait ClassDefNotFoundError chaque fois que du code était exécuté pour l'autre projet.
Donc c'était ma solution. Je suis allé à projeter les propriétés de mon projet et Java Build Path. Appuyez sur l'onglet "Source" et "lien de source" du dossier src de l'autre projet vers mon propre projet et nomme un nouveau dossier "core-src".
Espère que cette solution aide quelqu'un
Je viens de redémarrer l'appareil et d'exécuter l'application. Cela a fonctionné sans aucun problème. J'espère que ça aide quelqu'un :)
J'ai trouvé cette erreur dans Android Studio quand j'ai essayé de déboguer dans un périphérique avec API 23 , j'ai donc vérifié le Studio Android et j'ai remarqué que je n'avais pas installé cette version d'API 23. Après l'installation, j'ai résolu le problème.
Java.lang.RuntimeException: impossible d'instancier l'application com.Android.tools.fd.runtime.BootstrapApplication: Java.lang.ClassNotFoundException: la classe "com.Android.tools.fd.runtime.BootstrapApplication" est introuvable:/data/app.apk (sous Android 4.3, 4.1)
Impossible d'instancier l'application com.Android.tools.fd.runtime.BootstrapApplication: Java.lang.ClassNotFoundException: com.Android.tools.fd.runtime.BootstrapApplication (ci-dessous, Lollipop iam faisant face à cette erreur)
Pour désactiver Instant Run, les étapes ci-dessous permettent de désactiver l'exécution instantanée dans Android Studio 1. Allez dans Paramètres de fichier -> Construire, Exécution, Déploiement -> Exécution instantanée ---> décocher "Activer l'exécution instantanée"
Si vous avez ajouté un nouveau Library Project
en tant que module à votre projet Android et que vous utilisez Kotlin
dans votre bibliothèque n'oubliez pas d'ajouter
apply plugin: 'kotlin-Android'
haut du fichier de classement de votre module. Android Studio n'ajoute pas cette ligne lorsque vous avez créé un nouveau module, ce qui pourrait vous faire perdre des heures comme moi.
Dans notre cas, nous voulions compiler la version de Vagrant et avions la même erreur. Nous l'avons corrigé par clean project
et rebuild project
dans le menu Construire
J'ai eu ce problème plusieurs fois et souvent, je ne faisais manifestement pas d'erreur avec les dépendances.
C'est toujours une bonne idée de vérifier si cette classe 'non trouvé' est présente dans l'apk final. Si c'est le cas, comme c'est arrivé dans mes cas, le problème est généralement le suivant:
Ce n'est pas que la classe donnée est introuvable, mais il ne peut pas être chargé 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.
J'ai eu ce problème, causé par plusieurs causes, mais je le vois dans votre pile "**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 fonctionne plus.
<?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! =)
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, en veillant uniquement à inclure les projets de bibliothèque dans l'écran Android.
J'ai rencontré le même problème. Je l'ai résolu en supprimant d'abord le dossier de construction de votre dossier de projet Android et le dossier de construction de votre dossier d'applications . Puis nettoyez votre projet et la construction.
J'ai eu le même problème. J'utilise Xamarin.Android.
Le problème dans mon cas était que j'ai changé le code de version et le nom de version.
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 suit:
<?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 de 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 sert uniquement à déterminer si une version est plus récente qu'une autre, les chiffres les plus élevés indiquant les versions les plus récentes. Ce n'est pas le numéro de version indiqué aux utilisateurs; ce nombre est défini par l'attribut versionName . La valeur doit être définie comme 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, cela pourrait être un numéro de build. Vous pouvez également traduire un numéro de version au format "x.y" en un entier en codant les "x" et "y" séparément dans les 16 bits supérieurs et inférieurs. Ou vous pouvez simplement augmenter le nombre d'un à chaque fois qu'une nouvelle version est publiée.
Android: versionName Le numéro de version indiqué aux utilisateurs. Cet attribut peut être défini en tant que chaîne brute ou en tant que 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.
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 construire l'apk. -Build-> Clean Project -Build-> Build APK (s) J'espère que c'est utile .....
J'ai rencontré ce problème lorsque j'ai essayé de créer et d'installer mon application sur un téléphone Android 8.1.0 (API 26).
La seule raison est que j'ai ajouté Android:hasCode="false"
à la balise application
dans le fichier manifest
. Cependant, cela a fonctionné sur l'API 24 avec le même code lorsque j'ai essayé il y a plusieurs mois (STRANGE?).
Après avoir supprimé cet attribut, le problème disparaît.
J'avais le même problème aujourd'hui. Et essayé toutes les solutions ci-dessus déjà données mais rien ne fonctionnait pour moi. Ensuite, j'ai passé quelque temps et j'ai découvert la raison. Je pensais que cela pourrait également faire gagner du temps aux autres développeurs que je partage ici. Le problème était avec un nom de paquet incorrect. J'utilisais l'architecture MVP et j'ai gardé mes activités dans view package. Et j'ai copié la classe principale de mon autre projet. C'était le piège. Dans le fichier xml, l'activité principale faisait référence à un autre package qui était juste à l'extérieur. Le package n'incluait pas mon répertoire d'affichage (niveau de hiérarchie MVP). Ensuite, j'ai vérifié le manifeste aussi. Le même problème que j'ai trouvé là aussi. J'ai donc fourni le chemin d'accès complet (nom du paquet) de mon activité (jusqu'à ce que le répertoire/paquet de vues de MVP y ait gardé toutes mes activités). Cela a résolu mon problème. J'espère que cela aide les autres aussi.
Je suis également confronté au même problème, nous pouvons résoudre ce problème en
1- Désinstaller l'application.
2- Reconstruire le projet.
3- Nettoyez le projet.
4- Invalider et redémarrer le projet depuis fichier -> invalider et redémarrer.