布局崩溃.main
昨天我已将应用程序发布到市场,并且收到一条奇怪的崩溃报告,告诉我它找不到layout.main。如果布局不存在,我将无法在自己的设备上启动应用程序。事实并非如此。太糟糕了,报告不会告诉它运行在哪个设备或Android版本上。 也许有人可以下载我的应用程序(mytaxicontrol - 它是免费的),并告诉我在哪种情况下崩溃或有一个想法可能是什么问题?布局崩溃.main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mytaxicontrol/com.mytaxicontrol.MyTaxiControlActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030004
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030004
at android.content.res.Resources.getValue(Resources.java:892)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
at android.content.res.Resources.getLayout(Resources.java:731)
at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:209)
at android.app.Activity.setContentView(Activity.java:1657)
at com.mytaxicontrol.MyTaxiControlActivity.onCreate(Unknown Source)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
在清单中,您应该添加此项,因为您不需要支持小屏幕设备,因为未提及布局。
<supports-screens
android:smallScreens="false"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
而且你的布局文件夹的名称应该是
layout-normal
layout-large
“正常”不是必需的。 “布局”和“布局大”就足够:) – 2012-02-27 11:16:52
我没有任何支持屏幕在清单中。不会android自动将我的布局正常的main.xml呈现为小格式? emultaor做得很好! – michaelsmith 2012-02-27 12:58:16
@arunsoorya:你说得对,它一定是一个小屏幕。该文档说:小心:如果所有资源都使用大于当前屏幕的大小限定符,系统将不会使用它们,并且您的应用程序在运行时会崩溃(例如,如果所有布局资源都使用xlarge限定符进行标记,但该设备是正常尺寸的屏幕)。 – michaelsmith 2012-02-27 13:17:00
你有在res \布局所有的布局?也许其中的一个或多个文件只存在于res \ layout-port之类的合格文件夹中? – 2012-02-27 10:39:58
尝试做一个干净的项目。有时R文件是指旧的资源值。清理解决了这个问题。 – nhaarman 2012-02-27 10:40:18
我有2个main.xml,一个在layout-norm中,第二个在layout-large中。我已经在上传之前清理了该项目。 – michaelsmith 2012-02-27 10:43:53