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.

2voto

Ray Benjamin Points 11

Vérifiez que vos importations sont correctes. J'ai eu un problème similaire où R pointait vers le système Android R et non mon fichier local.

2voto

Arslan Mehboob Points 108

Cela peut se produire en raison d'une langue différente dans le téléphone pour laquelle votre code n'a pas d'actif. Par exemple, votre preference.xml est placé en xml-en et vous essayez d'exécuter votre application sur un téléphone qui a sélectionné le français, l'application se plantera.

2voto

astasiak Points 520

J'ai obtenu cette erreur pour une autre raison :

J'avais le fichier res/xml/data.xml et j'essayais de le charger avec Resources classe comme celle-ci :

Resources.getSystem().getXml(R.xml.data);

Toutefois, cela n'est pas correct, car la méthode Resources.getSystem() renvoie un objet Ressources partagé global qui ne donne accès qu'aux ressources du système.

La méthode correcte est la suivante (à partir de l'intérieur de l'activité) :

this.getResources().getXml(R.xml.data);

2voto

Tash Pemhiwa Points 2800

Dans mon cas, la version de Build Tools dans mon build.gradle pour le module app était obsolète sur un ancien projet. La mise à jour a résolu le problème :

android {
    ...
    buildToolsVersion "19.0.1"
    ...

J'ai mis à jour la dernière version des outils de construction (25.0.1) et synchronisé le projet, et tout est rentré dans l'ordre.

1voto

CoolMind Points 11

J'ai supprimé des dossiers build à l'intérieur d'un projet. Après l'avoir nettoyé et reconstruit dans Android Studio. Puis correction des erreurs dans build.gradle et AndroidManifest.

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