S'il vous plaît laissez-moi savoir où je me trompe pour obtenir l'erreur.
Je crée une application dont l'une des activités est d'être en mode paysage. J'ai donc ajouté ce qui suit dans le fichier AndroidManifest.xml
<activity Android:name=".LandScapeImageActivity" Android:screenOrientation="landscape"></activity>
J'ai créé un dossier comme
/ res/layout-land
et ajoutez-y une mise en page appelée see_today_landscape_layout.
et dans onCreate()
j'ai ajouté ce qui suit
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.see_today_landscape_layout);
....
}
Mais lorsque je lance mon application, l'erreur suivante s'affiche
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 coché l'enregistrement R.Java et il a la ressource avec l'ID 7f03002b que l'exception recherche et qu'elle est présente dans le ...
J'ai nettoyé et reconstruit le projet par exemple 5 fois, mais le problème persiste.
Le point étrange est que cela fonctionnait hier et ne fonctionne pas aujourd'hui. Le code est le même.
si cela se produit, supprimez le fichier r.Java. il va générer automatiquement.
Pour ma condition, la cause prenait int
paramètre pour TextView
. Me laisser montrer un exemple
int i = 5;
myTextView.setText(i);
obtient les informations d'erreur ci-dessus.
Ceci peut être corrigé en convertissant int
en String
comme ceci
myTextView.setText(String.valueOf(i));
Lorsque vous écrivez int
, il attend une ressource et non le texte que vous écrivez. Soyez donc prudent lorsque vous définissez un int
comme un String
dans Android.
Puisque vous définissez explicitement la mise en page, vous pouvez essayer de la placer dans le dossier par défaut/layout et non dans le/layout-land, car si vous voulez Android gérer automatiquement la rotation pour vous .
Essayez de déplacer votre mise en page XML du dossier res/layout-land
Vers le dossier res/layout
.
Dans mon cas, la version de Build Tools dans mon build.gradle pour le module d'application était obsolète pour un ancien projet. La mise à jour a résolu le problème:
Android {
...
buildToolsVersion "19.0.1"
...
Mis à jour à la dernière version des outils de génération (25.0.1) et synchronisé le projet, tout allait bien à nouveau.
Vérifiez que vos importations sont correctes. J'ai eu un problème similaire où R
pointait vers le fichier Android système R
, pas mon fichier local.
J'ai rencontré la même chose aujourd'hui. Dans mon cas, je lisais une valeur entière de ma base de données Firebase et la transmettais à setText () d'un TextView sans la convertir en entier. Alors utilisez simplement:
textview.setText(intvalue + "");
ou
textView.setText(String.valueOf(intValue));
Cela peut être dû à une langue différente du téléphone pour laquelle votre code n'a pas l'actif. Par exemple, votre préférence.xml est placée dans xml-en et vous essayez d'exécuter votre application sur un téléphone dont le français est sélectionné. L'application se bloquera.
J'ai eu cette erreur d'une autre raison encore:
J'avais le fichier res/xml/data.xml
Et j'essayais de le charger avec la classe Resources
comme ceci:
Resources.getSystem().getXml(R.xml.data);
Toutefois, cela est incorrect car la méthode Resources.getSystem()
renvoie un objet global ressources partagé qui fournit un accès aux ressources système uniquement.
La manière correcte est la suivante (de l'intérieur de l'activité):
this.getResources().getXml(R.xml.data);
Cela peut également causer des problèmes: accidentellement, une de mes mises en page était parquée dans le dossier de ressources de la tablette. Cette erreur s’est produite uniquement avec la mise en page du téléphone. La mise en page du téléphone n'avait tout simplement pas de fichier de mise en page approprié.
J'ai travaillé à nouveau après avoir déplacé le fichier de mise en page dans le bon dossier standard et reconstruit le projet suivant.
même il a accepté la réponse mais j'ai une réponse différente. cela se produira surtout lorsque vous affectez du texte à afficher. par exemple .
currectText.setText(progress);
mais si le paramètre n'est pas une chaîne, il vous donnera
Android.content.res.Resources$NotFoundException: String resource ID
alors faites paramètre en tant que chaîne. c'est simple, il suffit d'utiliser l'opérateur '+'
currectText.setText(""+progress);
je passe int dans la méthode setText juste convertie en problème de chaîne résoudre
2ème option si c'est Integer
currectText.setText(String.valueOf(progress));
J'ai supprimé des dossiers build
à l'intérieur d'un projet. Après nettoyé et reconstruit dans Android Studio. Puis corrigé des erreurs dans build.gradle et AndroidManifest.
J'ai eu cette erreur lorsque j'essayais d'accéder aux données de l'ensemble à partir de One Intent en utilisant getInt ("ID").
Je l'ai résolu en utilisant getString ("ID").
de l'activité 1 j'avais
Intent intent=new Intent(this,ActivityB.class);
intent.putExtra("data",data)//
startActivity(intent);
sur l'activité B,
Bundle bundle=getIntent().getExtras();
if(extras!=null){
// int x=extras.getInt("Data"); This Line gave me error int
x=Integer.parseInt(extras.getString("Data")); // This solved the problem.
}
Eclipse: Projet> Nettoyer
a travaillé pour moi. Je reçois souvent cela lorsque je copie des mises en page d'autres applications dans une nouvelle application.
Ennuyeux.
L'orientation de l'écran est définie sur paysage dans votre fichier XML. Si vous avez utilisé Eclipse pour générer ce fichier, celui-ci aurait été créé dans le répertoire res/layout-land/folder.Mais lorsque vous ouvrez une activité en mode Portrait, le xml est recherché dans res/layout-port/folder . Si vous n'aviez pas XML pour le mode portrait, votre application se bloquerait.
Assurez-vous que le R que vous pointez est le bon. J'ai eu un problème très similaire à celui-ci, où une importation insérée par Eclipse a été dirigée vers le fichier System R plutôt que vers celui du projet. Il a fallu beaucoup de gratter la tête. J'espère que cela t'aides.