0

具有 800x1280 像素和 170dpi 的 Galaxy Tab 8.9 在 googleplay 上的开发控制台中给了我一些错误。它正在做的是从我的布局端口和布局土地中提取布局,我完全被难住了。

这是一切:

不断崩溃的手机:

Galaxy Tab 8.9 (GT-P7310)

错误日志:

java.lang.RuntimeException: Unable to start activity ComponentInfo{joseph.lubonty.librarysmite11/joseph.lubonty.librarysmite11.JungleTimers}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030003
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1751)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767)
at android.app.ActivityThread.access$1500(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1005)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4028)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030003
at android.content.res.Resources.getValue(Resources.java:1014)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:2039)
at android.content.res.Resources.getLayout(Resources.java:853)
at android.view.LayoutInflater.inflate(LayoutInflater.java:389)
at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:245)
at android.app.Activity.setContentView(Activity.java:1780)
at joseph.lubonty.librarysmite11.JungleTimers.onCreate(JungleTimers.java:68)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1715)
... 11 more

这是 JungleTimers 中的第 68 行:

setContentView(R.layout.jungle_timers);

所以我创建了一个具有 1280x800 mdpi 的模拟器来模拟该设备。对我来说没有意义的是我三次检查,我可以看到我的“layout-port”和“layout-sw600dp”中有一个jungle_timers布局,因此应该找到资源文件。我发现奇怪的另一件事是,当它应该执行 layout-sw600 时,它会从我的布局端口和布局域中提取所有布局,因为该设备的分辨率为 800x1280 且为 mdpi。

关于如何解决这个问题的任何想法?

4

1 回答 1

1

这样做的原因是因为我使用的是 3.2 之前的 API,这意味着我不能使用“sw”布局文件夹。我发现的一个快速解决方法是制作布局文件夹,例如 /layout-large-land、/layout-large-port、/layout-xlarge-land、/layout-xlarge-port,这解决了我的问题。

于 2013-10-19T23:07:56.640 回答