布局崩溃.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) 
+0

你有在res \布局所有的布局?也许其中的一个或多个文件只存在于res \ layout-port之类的合格文件夹中? – 2012-02-27 10:39:58

+0

尝试做一个干净的项目。有时R文件是指旧的资源值。清理解决了这个问题。 – nhaarman 2012-02-27 10:40:18

+0

我有2个main.xml,一个在layout-norm中,第二个在layout-large中。我已经在上传之前清理了该项目。 – michaelsmith 2012-02-27 10:43:53

在清单中,您应该添加此项,因为您不需要支持小屏幕设备,因为未提及布局。

<supports-screens 
       android:smallScreens="false" 
       android:normalScreens="true" 
       android:largeScreens="true" 
       android:anyDensity="true" /> 

而且你的布局文件夹的名称应该是

layout-normal 
layout-large 
+0

“正常”不是必需的。 “布局”和“布局大”就足够:) – 2012-02-27 11:16:52

+0

我没有任何支持屏幕在清单中。不会android自动将我的布局正常的main.xml呈现为小格式? emultaor做得很好! – michaelsmith 2012-02-27 12:58:16

+0

@arunsoorya:你说得对,它一定是一个小屏幕。该文档说:小心:如果所有资源都使用大于当前屏幕的大小限定符,系统将不会使用它们,并且您的应用程序在运行时会崩溃(例如,如果所有布局资源都使用xlarge限定符进行标记,但该设备是正常尺寸的屏幕)。 – michaelsmith 2012-02-27 13:17:00