2

Samsung Note IIでアプリを実行しようとすると、この行のResourceNotFoundExceptionが発生します

setContentView(R.layout.activity_main);

ただし、エミュレータまたはSamsung Note 10.1で実行しても、この例外は発生しません。

どちらもJellybeanを実行していて、私のxmlファイルはというフォルダーlayout-landにあり、XMLファイルはそこにあります。プロジェクトをクリーンアップして再構築しようとしましたが、それでも機能しません。

誰かが何が悪いのか考えていますか?

さらに情報を提供できるかどうか教えてください。ありがとう!

01-27 22:11:32.975: E/AndroidRuntime(28330): FATAL EXCEPTION: main
01-27 22:11:32.975: E/AndroidRuntime(28330): java.lang.RuntimeException: Unable to start activity        ComponentInfo{com.ventusthecorgi.hungrycorgi/com.mypackage.app.MainActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030003
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.app.ActivityThread.access$600(ActivityThread.java:140)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.os.Looper.loop(Looper.java:137)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.app.ActivityThread.main(ActivityThread.java:4898)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at java.lang.reflect.Method.invokeNative(Native Method)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at java.lang.reflect.Method.invoke(Method.java:511)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at dalvik.system.NativeStart.main(Native Method)
01-27 22:11:32.975: E/AndroidRuntime(28330): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030003
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.content.res.Resources.getValue(Resources.java:1026)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2131)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.content.res.Resources.getLayout(Resources.java:865)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:307)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.app.Activity.setContentView(Activity.java:1916)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at com.ventusthecorgi.hungrycorgi.MainActivity.onCreate(MainActivity.java:22)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.app.Activity.performCreate(Activity.java:5191)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
01-27 22:11:32.975: E/AndroidRuntime(28330):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
4

3 に答える 3

5

問題のあるレイアウト ファイルがディレクトリにのみあると思われますlayout-land(質問に書いたことに基づいて)。これは、デバイスが縦向きモードで起動された場合、Android はlayout-portディレクトリでレイアウトを検索し、次に layoutでは検索しない layout-landことを意味します。私は間違っているかもしれませんが、Samsung Note II が縦向きモードで起動するため、レイアウト ファイルが表示されないというのが私の推測です。

フォールバック レイアウト リソースを提供する必要があります。からレイアウトをコピーしlayout-landlayout-portポートレート モードに合わせて変更するかlayout、フォールバック レイアウトとしてディレクトリにコピーします。

于 2013-01-28T06:26:19.507 に答える
1

AFAIK、Samsung Galaxy Note IIのデフォルトの向きは横向きではありません

特定のレイアウト特性に適合しないデバイスについては、一連のリソース ファイルを /res/layout に配置してみてください。

于 2013-01-28T06:25:36.603 に答える
1

xml ファイルはレイアウトランドにあるため、アプリ/デバイスがランドスケープ モードの場合にのみ有効です。それらをレイアウトだけに移動/コピーしてみてください。問題はありません。一般的なレイアウトをレイアウト ディレクトリに配置し、ランドスケープに最適化されたレイアウトをレイアウトランドに配置することもできます (または、他のリソース選択基準を参照してください)。

于 2013-01-28T06:25:50.373 に答える