找不到<的布局ID 1%的用户?

时间:2011-09-30 11:28:57

标签: android

我有一个应用程序,每天有几千个用户。我通过市场获得了一些报告,我的入门活动无法加载其布局xml资源。我不知道这怎么可能?:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.me.app/com.me.app.MyActivity}: **android.content.res.Resources$NotFoundException: Resource ID #0x7f030065**
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
at android.app.ActivityThread.access$1500(ActivityThread.java:121)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3701)
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:862)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030065
at android.content.res.Resources.getValue(Resources.java:896)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:1873)
at android.content.res.Resources.getLayout(Resources.java:735)
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:207)
at android.app.Activity.setContentView(Activity.java:1657)
at com.me.app.MyBaseActivity.setContentView(MyBaseActivity.java:50)
at com.me.app.MyActivity.onCreate(MyActivity.java:116)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
... 11 more

该行的例外情况如下:

setContentView(R.layout.my_layout);

任何想法我可能在这里做错了吗?同样,99%的用户都没有问题。

谢谢

2 个答案:

答案 0 :(得分:1)

我同意对资源ID 0x7f030065进行故障排除是了解这些错误报告的关键问题的评论。

我假设该资源不是my_layout文件。尽管my_layout被指向问题的界限,但它很可能不是根本问题。 my_layout文件中的某些内容是指资源0x7f030065。布局inflater通常不会非常清楚地报告这些错误。

如果默认文件夹中没有0x7f030065的版本(例如:drawable而不是drawable-landscape),那么可能1%正在运行的配置中找不到它正在回归到非存在默认值。即使您的应用程序例如以横向方向锁定,这种情况也是可能的 - 即使最终用户看不到可能仍然会发生纵向绘图 -

它始终是相同的资源ID吗?这是一个值得注意的好事。

根据我的经验,内存不足等其他问题可能导致这类充气时间异常。如果资源0x7f030065引用自定义布局类,那么在该类的构造函数中发生的任何事情都可能导致Resources $ NotFoundException

答案 1 :(得分:1)

我经历过类似的事情。 我有一个活动,我想只在横向展示 - 所以在AndroidManifest.xml我有android:screenOrientation =“landscape”。 比文件夹布局 - 土地和我的布局文件。

当活动试图加载主布局时,我会不时地随机获取一个Resources $ NotFoundException。

我通过将文件夹layout-land重命名为layout来解决它。

但我认为我们在android中遇到了某种错误。