android apk编译时可以找到的资源,但在运行时却找不到出错Resources$NotFoundException

转载自:http://www.devdiv.com/home.php?mod=space&uid=258059&do=blog&id=11973


在android开发中会用一些资源,这些资源以不同形式存在,比如说图片,xml等,android为这些不同类型的资源统一编号,生成资源类R 。如下: 
java代码:
public final class R {
public static final class anim {
public static final int popup_enter=0x7f040000;
public static final int popup_exit=0x7f040001;
}


public static final class drawable {
public static final int gradient_bg=0x7f020000;
public static final int icon=0x7f020001;
}


public static final class layout {
public static final int city_item=0x7f030000;
}
}


在编译器编译程序时可以找到的资源,但在运行时却找不到,会出现如下异常: 
12-14 01:40:58.452: WARN/AppWidgetHostView(627): android.content.res.Resources$NotFoundException: Resource ID #0x7f030000 
出现此类异常时,可以根据 Resource ID到资源类R中找相关的资源。比如0x7f030000,对应的是city_item布局文件,就可以将问题缩小到更小的范围。对于这类运行时找不到资源,但资源又确实存在的问题,可能的编译打包时出现问题,没有将该资源加入。可修改一下该资源,让编译器重新编译。 


引用一下其他网友的解决方案: 
1、 今天遇到类似这样问题,后来在找到解决方案,把AndroidManifest.xml里面的版本改为8(我原来的是10),问题解决了,原因是这样的:主要是原来的那个工程占用现在的这个虚拟机,不能正常加载现在的这个工程. 

把原来的那个工程移除掉,把原来的工程的androidmanifest.xml文件考到现在的这个工程就可以了,不改版本号也可以运行。。自己尝试一下会感悟很多的 
再有就是点击Project ->Clean一下这个项目 也可以的。 

2、 ERROR/AndroidRuntime(279): android.content.res.Resources 
$NotFoundException: String resource ID #0x7f050008 

解决方案: 
可能存在的问题是eclipse缓存影响了现有项目的运行,清除一下缓存即可以了。。。 

3、android.content.res.Resources$NotFoundException 今天编程时遇到了这种异常产生异常的代码如 下:distanceChoiceView.setText(PreferenceStoreData.getIntByKey(AroundActivity.this, FinalConst.arroudDistance, 500));产生原因在于 TextView.setText(value) ,其中value必须是String 类型的。而我上面赋值的时Int 类型,所以出错。解决方 法:distanceChoiceView.setText(“”+PreferenceStoreData.getIntByKey(AroundActivity.this, FinalConst.arroudDistance, 500)); 

4、自己遇到的问题:

Backtrace: 
Process: com.android.camera
Flags: 0x98bc45
Package: com.android.camera v40001 (2.0.20150601)
Build: vivo/full_bbk6735m_35gc_k/bbk6735m_35gc_k:4.4.4/KTU84P/1440674796:user/release-keys


java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.MEDIA_SCANNER_STARTED dat=file:///storage/sdcard0 flg=0x10 } in com.android.camera.PhotoModule$MyBroadcastReceiver@420eaf78
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:799)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5309)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:831)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:647)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f0f037e
at android.content.res.Resources.getText(Resources.java:272)
at android.content.res.VivoResources.getText(VivoResources.java:124)
at android.content.res.Resources.getString(Resources.java:370)
at com.android.camera.CameraActivity.showToast(CameraActivity.java:11372)
at com.android.camera.CameraActivity.showMediascanToast(CameraActivity.java:11452)
at com.android.camera.PhotoModule$MyBroadcastReceiver.onReceive(PhotoModule.java:970)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:789)
... 9 more


Backtrace: 
Process: com.android.camera
Flags: 0x98bc45
Package: com.android.camera v40001 (2.0.20150601)
Build: vivo/full_bbk6735m_35gc_k/bbk6735m_35gc_k:4.4.4/KTU84P/1440674796:user/release-keys


android.content.res.Resources$NotFoundException: String resource ID #0x7f0f037e
at android.content.res.Resources.getText(Resources.java:272)
at android.content.res.VivoResources.getText(VivoResources.java:124)
at android.content.res.Resources.getString(Resources.java:370)
at com.android.camera.CameraActivity.showToast(CameraActivity.java:11372)
at com.android.camera.CameraActivity.showVoiceCaptureToast(CameraActivity.java:11472)
at com.android.camera.CameraActivity.access$7600(CameraActivity.java:200)
at com.android.camera.CameraActivity$MainHandler.handleMessage(CameraActivity.java:4563)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5309)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:831)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:647)
at dalvik.system.NativeStart.main(Native Method)

这两个错误指向同一个字串资源ID 即 String resource ID #0x7f0f037e
这里最终还是发现字串资源找不到。showToast() 函数中用到的一个字串 toast_4k_storagepath_non_mtp 在 values/string.xml 中没有定义。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值