您的位置:首页 > 移动开发 > Android开发

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

2015-09-10 18:07 573 查看
转载自: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 中没有定义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ResourcesNotFoundExc