Android 问题之找不到资源解决办法

来源:互联网 发布:淘宝网1 编辑:程序博客网 时间:2024/06/03 20:58

今天遇到了一个问题,给我报了个找不到资源

04-28 09:34:51.591: E/AndroidRuntime(1849): FATAL EXCEPTION: main
04-28 09:34:51.591: E/AndroidRuntime(1849): Process: com.example.project, PID: 1849
04-28 09:34:51.591: E/AndroidRuntime(1849): android.content.res.Resources$NotFoundException: Resource ID #0x7f080000

遇到这种问题大多数都是你引用的时候错了,比如setContentView(R.ld.bitmap_http);它的参数明明是R.layout

我却去引用Id,它就给我报错了,

所以遇到资源找不到的问题,首先就去找你引用的地方,其次才可能确实是你的资源没有定义但还是有解决办法

 

以下是一些解决办法 

错误:android.content.res.Resources$NotFoundException: String resource ID #0x1

原因:一般发生在参数 int resId 错误,你把String赋值给int的resId,所以编译器找不到正确的resource于是报错。

最简单的例子,检查一下你的Toast.makeText()啊textView.setText啊之类的函数,这种函数通常有几个重载,如:

textView.setText(CharSequence text);

textView.setText(int resId);

......

如果不小心将一个int值传给了它,那它不会显示该int值,而是跑到工程下去找一个对应的resource的id,当然是找不到的,于是就报错啦。

 

解决办法:

如果要显示该int值,就要将int转化成String或者CharSequence,百度上很多办法。

个人比较喜欢这么干:在该int值后面+"",强制转为String。简单易用。

 

二。

android开发中会用一些资源,这些资源以不同形式存在,比如说图片,xml等,android为这些不同类型的资源统一编号,生成资源类R
。如下:
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;
}
}

在编译器编译程序时可以找到的资源,但在运行时却找不到,会出现如下异常:
3-14 01:40:58.452: WARN/AppWidgetHostView(627): android.content.res.Resources$
NotFoundExceptionResource 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));


 

 

android编程常见问题- Resource ID #0x7f070001 type #0x12 is not valid

问题说明:

AndroidRuntime(1705): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.activitytest/com.example.activitytest.SecondActivity}: android.content.res.Resources$NotFoundException:Resource ID #0x7f070001 type #0x12 is not valid

 

解决办法:

根据Resource ID #0x7f070001 type #0x12 is not valid提示,去R.java 文件中检查是否定义该对象,

 

如果已经定义,则检查com.example.activitytest.SecondActivity类

  

 

发现语句写错了,改为:setContentView(R.layout.second_layout);解决问题

 

0 0
原创粉丝点击