エラーが発生するのはどこが間違っているのか教えてください。
私は、そのアクティビティの1つがランドスケープモードのみであるアプリを作成しています。そこで、以下をAndroidManifest.xmlファイルに追加しました
<activity Android:name=".LandScapeImageActivity" Android:screenOrientation="landscape"></activity>
私は次のようなフォルダを作成しました
/ res/layout-land
そして、その中にsee_today_landscape_layoutというレイアウトを追加します。
onCreate()
に次を追加しました
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.see_today_landscape_layout);
....
}
しかし、アプリを実行すると、次のエラーが表示されます
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
R.Javaをチェックインしましたが、例外が探しているID 7f03002bのリソースがあり、そこに存在しています...
プロジェクトを5回ほどクリーニングして再構築しましたが、それでも問題が発生します。
奇妙な点は、これは昨日機能していたが、今日は機能していないということです。コードは同じです。
再び発生する場合は、r.Javaファイルを削除してください。自動的に生成されます。
私の状態では、原因はint
のTextView
パラメーターを使用していました。例を示しましょう
int i = 5;
myTextView.setText(i);
上記のエラー情報を取得します。
これは、このようにint
をString
に変換することで修正できます。
myTextView.setText(String.valueOf(i));
int
を記述すると、記述しているテキストではなくリソースが必要です。したがって、Androidでint
をString
として設定する場合は注意してください。
レイアウトを明示的に設定しているので、Androidが自動的に回転を処理するようにするため、/ layout-landではなくデフォルトの/ layoutフォルダーに配置することをお勧めします。
レイアウトXMLをres/layout-land
からres/layout
フォルダーに移動してみてください
私の場合、アプリモジュールのbuild.gradleにあるビルドツールのバージョンは、古いプロジェクトでは古くなっていました。更新すると問題が修正されました:
Android {
...
buildToolsVersion "19.0.1"
...
最新のビルドツールバージョン(25.0.1)に更新し、プロジェクトを同期しましたが、すべて正常でした。
インポートが正しいことを確認してください。 R
がローカルのファイルではなく、AndroidシステムR
ファイルを指しているという同様の問題がありました。
今日も同じことに遭遇しました。私の場合、Firebaseデータベースから整数値を読み取り、それを整数に変換せずにTextViewのsetText()に渡していました。だから使用するだけ:
textview.setText(intvalue + "");
または
textView.setText(String.valueOf(intValue));
これは、コードに資産がない電話の異なる言語が原因で発生する可能性があります。たとえば、preference.xmlがxml-enに配置され、フランス語を選択した電話でアプリを実行しようとすると、アプリがクラッシュします。
私はさらに別の理由からこのエラーを受け取りました:
ファイルres/xml/data.xml
があり、次のようなResources
クラスでロードしようとしました:
Resources.getSystem().getXml(R.xml.data);
ただし、メソッドResources.getSystem()
はシステムリソースのみへのアクセスを提供するグローバル共有リソースオブジェクトを返すため、これは正しくありません。
正しい方法は次のとおりです(アクティビティ内から)。
this.getResources().getXml(R.xml.data);
これはいくつかの問題も引き起こす可能性があります。誤ってレイアウトの1つがタブレットリソースフォルダーに駐車されたため、このエラーは電話のレイアウトでのみ発生しました。電話のレイアウトには、適切なレイアウトファイルがありませんでした。
レイアウトファイルを正しい標準フォルダーに移動し、次のプロジェクトを再構築した後、再び作業しました。
それが答えを受け入れましたが、私は別の答えを持っています。ほとんどの場合、表示するテキストを割り当てるときに発生します。例えば 。
currectText.setText(progress);
ただし、パラメータが文字列ではない場合は、
Android.content.res.Resources$NotFoundException: String resource ID
したがって、パラメータを文字列として作成します。 「+」演算子を使用するだけで簡単です
currectText.setText(""+progress);
文字列の問題解決に変換されたsetTextメソッドでintを渡す
Integer
の場合の2番目のオプション
currectText.setText(String.valueOf(progress));
プロジェクト内のフォルダーbuild
を削除しました。 Android Studioでクリーニングして再構築した後。次に、build.gradleおよびAndroidManifestのエラーを修正しました。
GetInt( "ID")を使用してOne Intentからバンドルデータにアクセスしようとしたときに、このエラーが発生しました。
GetString( "ID")を使用して解決しました。
私が持っていたActivity1から
Intent intent=new Intent(this,ActivityB.class);
intent.putExtra("data",data)//
startActivity(intent);
アクティビティ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:プロジェクト>クリーン
私のために働いた。他のアプリから新しいアプリにレイアウトをコピーすると、これがよく発生します。
うるさい。
Xmlで画面の向きを横に設定しています。 Eclipseを使用してこのファイルを生成した場合、res/layout-land /フォルダーに作成されますが、ポートレートモードアプリケーションでアクティビティを開くと、res/layout-port /フォルダーまたは通常のres/layout /でxmlが検索されます。ポートレートモードのxmlがない場合、アプリケーションはクラッシュします。
指しているRが正しいことを確認してください。私はこれと非常に似た問題を抱えていました。そこでは、プロジェクトではなくSystem Rファイルを指すEclipseによってインポートが挿入されました。頭をひっかきました。お役に立てれば。