web-dev-qa-db-fra.com

Android - Impossible d'instancier l'activité - Exception de classe non trouvée après la mise à niveau vers ADT 22

J'ai récemment mis à niveau mon ADT vers la version 22. Après cela, j'ai tout d'abord reçu une erreur avec ma bibliothèque de support (qui reposait sur un autre projet de bibliothèque). Après avoir copié le fichier bibliothèque de support pour mon projet et nettoyé tous mes projets, je continue à recevoir les erreurs suivantes lorsque je tente de lancer mon application:

Java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.d.d/com.d.d.MainActivity}: Java.lang.ClassNotFoundException: com.d.d.MainActivity

(J'ai renommé le nom du paquet réel en com.d.d)

Mais ce qui me fait penser que c’est la cause des modifications de la bibliothèque de support, c’est la ligne suivante:

at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:61)

Cela me garde méfiant parce que quand j'ai déjà eu des problèmes avec la bibliothèque de support, j'ai reçu beaucoup d'erreurs liées à quelque chose dex.

Inutile de dire que le Manifeste Android contient le chemin correct pour l'activité.

Toute aide sera grandement appréciée ici. Merci beaucoup.

17
MrByte

Peut-être une copie de this .

Essayez d’accéder à Projet -> Propriétés -> Chemin de construction Java -> Commande et exportation et assurez-vous que Les bibliothèques privées Android sont vérifiées pour votre projet et pour tous autres projets de bibliothèque que vous utilisez. Nettoyez tous les projets Ensuite et voyez ce qui se passe.

83
Krauxe

@Krauxe Merci beaucoup pour cette réponse!

Cependant, je devais utiliser une approche légèrement ajustée dans mon Eclipse ( Version: 3.7.2 ).

  1. Projet - Propriétés - Chemin de construction Java - Order & Export
  2. Check Bibliothèques privées Android (également pour les projets de bibliothèque utilisés)
  3. Projet - Nettoyer ... - Nettoyer tous les projets
6
droide_91

Ici, nous avons dû ajouter le dossier src en tant que dossier source. Pour une raison quelconque, la liaison a disparu.

  1. Faites un clic droit sur votre dossier src.
  2. Chemin de construction -> Utiliser comme dossier source
1
Julio Rodrigues

si le problème persiste, le nom de l'activité ne correspond probablement pas à celui du package dans AndroidManifest.xml. Par exemple, votre fichier XML ressemble à ceci.

<activity
    Android:name="com.tony.HomeActivity"
    Android:screenOrientation="portrait" >
    <intent-filter>
        <action Android:name="Android.intent.action.MAIN" />
        <category Android:name="Android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

mais la HomeActivity effectivement dans le package com.tony.ui.HomeActivity.

0
SalutonMondo

J'ai eu le même problème. La solution consistait à changer le dossier de sortie en bin/classes.

  1. Clic droit sur le projet
  2. Sélectionnez Propriétés
  3. Aller au chemin de construction Java> Source
  4. Définissez le dossier de sortie par défaut sur/bin/classes

Salutations, Martin

0
user3399247