178 votes

java.lang.RuntimeException : Impossible d'instancier l'activité ComponentInfo

J'ai essayé d'exécuter un exemple de code En lançant l'application dans l'émulateur Android 1.5, j'ai obtenu ces erreurs.... Quelqu'un a-t-il un indice ?

ERREUR de LogCat :

01-13 02:28:08.392: ERROR/AndroidRuntime(2888): FATAL EXCEPTION: main
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.s.android.test/com.s.android.test.MainActivity}: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1544)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.os.Looper.loop(Looper.java:123)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.main(ActivityThread.java:3647)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.reflect.Method.invokeNative(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.reflect.Method.invoke(Method.java:507)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at dalvik.system.NativeStart.main(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): Caused by: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1536)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     ... 11 more
01-13 02:28:08.407: WARN/ActivityManager(112):   Force finishing activity com.s.android.test/.MainActivity

Modifier Cette erreur survient chez la plupart des débutants. Le problème est que vous devez ajouter toutes vos activités dans le fichier Manifest.

0 votes

Merci Dan Breslau...C'est mieux maintenant...comment faire ?

1 votes

Désolé les gars...désolé de vous avoir fait perdre votre temps...j'ai juste oublié d'ajouter la nouvelle classe au fichier Manifest...

1 votes

La mise à jour de tous mes outils (eclipse et sdk manager) a réglé le problème pour moi, ainsi que l'ajout de la bibliothèque de support Android au projet.

164voto

Tanmay Mandal Points 13341

C'est un problème de votre intention.

Veuillez ajouter votre Activity dans votre AndroidManifest.xml .

Quand vous voulez créer une nouvelle activité, vous devez l'enregistrer dans votre AndroidManifest.xml .

5 votes

J'ai une classe qui n'étend pas l'activité, elle contient juste quelques fonctions communes ; mais j'obtiens toujours cette exception ; pourquoi ?

0 votes

Dans mon projet, il est indiqué que la classe n'est pas publique lorsque l'on regarde le nom Android:name dans le fichier xml. Lorsque j'ajoute public avant la classe dans l'activité principale, l'application fonctionne sans problème. Bizarre.

0 votes

J'ai eu ce problème dans une application native que je développais j'ai ajouté une autre méthode dans la classe d'activité, et j'ai commencé à avoir cette erreur pour moi un nettoyage + reconstruction l'a résolu .

69voto

LifeH2O Points 1588

Vous essayez peut-être de trouver la vue avant onCreate() ce qui est incorrect.

public class MainActivity extends Activity {

  ImageView mainImage = (ImageView) findViewById(R.id.imageViewMain); //incorrect

  @Override
  protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
  ...
}

3 votes

Wooo, merci mec. Tu me sauves la vie. C'est assez stupide mais merci beaucoup. Ça me hantait depuis une semaine maintenant.

0 votes

Je faisais la même erreur ;)

0 votes

Même erreur ici aussi. Merci

68voto

Kevin Points 602

Il existe un autre moyen d'obtenir un java.lang.RuntimeException : Impossible d'instancier l'activité ComponentInfo exception et c'est l'activité que vous essayez de démarrer est abstrait . J'ai fait cette erreur stupide une fois et c'est très facile à négliger.

18 votes

De plus, l'activité doit être publique (c'était mon erreur).

0 votes

Désolé de vous déranger deux ans plus tard, mais je me demandais pourquoi vous ne pouvez pas lancer une activité abstraite ?

2 votes

@BenjaminFranklin Une classe abstraite signifie qu'elle n'est pas complète, qu'il lui manque des parties. Préfixer une classe avec le mot clé abstract signifie qu'elle ne peut pas être instanciée directement, mais seulement par héritage : et d'autres classes implémentant les fonctionnalités manquantes de la classe abstraite.

53voto

Maragues Points 9461

Dans mon cas, j'ai oublié d'ajouter la bibliothèque Google Maps.

<application>
    ....

    <uses-library android:name="com.google.android.maps" />
</application>

Vérifiez également qu'il ne manque pas le point qui précède le chemin d'activité.

<activity android:name=".activities.MainActivity"/>

2 votes

Merci, @Maragues ! !! C'était le même problème ! Vous avez résolu mon problème :)

27voto

Haroon Dilshad Points 351

Image

Cela se produit également à cause de ce problème. J'ai décoché les jars qui devaient être exportés vers l'apk et la même chose s'est produite. Veuillez cocher les jars dont votre application a besoin pour fonctionner.

0 votes

Il est important de voir ce problème, et d'essayer chaque composant de dépendance correctement. Par exemple, sur Android Studio (ou Intellij IDEA) sélectionnez la portée correcte pour les dépendances (Provided, Compile, ...). Dans mon cas, changer Provided à Compile et fonctionne bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X