2012-02-27 131 views
1

昨天我已將應用程序發佈到市場,並且收到一條奇怪的崩潰報告,告訴我它找不到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

回答

1

在清單中,您應該添加此項,因爲您不需要支持小屏幕設備,因爲未提及佈局。

<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