107 votes

Obtention de l'exception Android.content.res.Resources$NotFoundException : exception même si la ressource est présente dans Android

Veuillez m'indiquer où je me trompe pour obtenir cette erreur.

Je suis en train de créer une application dont l'une des activités ne doit se faire qu'en mode paysage. J'ai donc ajouté ce qui suit dans AndroidManifest.xml fichier

<activity android:name=".LandScapeImageActivity" android:screenOrientation="landscape"></activity>

J'ai créé un dossier comme

/res/layout-land

et y ajouter une mise en page appelée see_today_landscape_layout.

et en onCreate() J'ai ajouté ce qui suit

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.see_today_landscape_layout);
....
}

Mais lorsque j'exécute mon application, j'obtiens l'erreur suivante

02-06 13:46:14.358: E/AndroidRuntime(13286): FATAL EXCEPTION: main
02-06 13:46:14.358: E/AndroidRuntime(13286): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mid.kew.activities/com.mid.kew.activities.LandScapeImageActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4066)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.app.ActivityThread.access$2400(ActivityThread.java:135)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2140)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.os.Looper.loop(Looper.java:144)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.app.ActivityThread.main(ActivityThread.java:4937)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at java.lang.reflect.Method.invokeNative(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at java.lang.reflect.Method.invoke(Method.java:521)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at dalvik.system.NativeStart.main(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.content.res.Resources.getValue(Resources.java:892)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.content.res.Resources.getLayout(Resources.java:731)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.app.Activity.setContentView(Activity.java:1654)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at com.mid.kew.activities.LandScapeImageActivity.onCreate(LandScapeImageActivity.java:103)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
02-06 13:46:14.358: E/AndroidRuntime(13286):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
02-06 13:46:14.358: E/AndroidRuntime(13286):    ... 12 more

J'ai traversé l'enregistrement R.java et il contient la ressource avec l'ID 7f03002b que l'exception recherche et elle est présente là-dedans...

J'ai nettoyé et reconstruit le projet disons 5 fois, mais le problème persiste.

Ce qui est étrange, c'est que cela fonctionnait hier et ne fonctionne plus aujourd'hui. Le code est le même.

240voto

Yekmer Simsek Points 1547

Dans mon cas, la cause était la prise de int paramètre pour TextView . Permettez-moi de vous montrer un exemple

int i = 5;
myTextView.setText(i);

obtient les informations d'erreur ci-dessus.

Ce problème peut être résolu en convertissant int a String comme ceci

myTextView.setText(String.valueOf(i));

Comme vous l'écrivez int il attend une ressource et non le texte que vous écrivez. Soyez donc prudent lorsque vous définissez un int en tant que String dans Android.

37voto

prakash Points 195
  1. dans Eclipse, aller dans Projet > Nettoyer...
  2. sélectionnez votre projet, puis appuyez sur OK
  3. relancer l'application

si cela se reproduit, supprimez le fichier r.java. il sera généré automatiquement.

13voto

mbwasi Points 1487

Puisque vous définissez explicitement la disposition, vous devriez essayer de la placer dans le dossier par défaut /layout et non dans /layout-land, car c'est ainsi que vous voulez qu'Android gère automatiquement la rotation pour vous.

10voto

Ashish Kumar Points 309

Essayez de déplacer votre layout xml de res/layout-land a res/layout dossier

4voto

Nasser Ghodsian Points 81

Je viens de recevoir cette erreur sur Android 6. J'ai déplacé tous les drawables de drawable-v24 vers le dossier drawable et l'erreur a enfin disparu.

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