解决:Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2

  在运行Android app时出现以下错误:

   --------- beginning of crash
11-28 07:53:56.485 6712-6712/com.trojane.android.learnactivity E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.trojane.android.learnactivity, PID: 6712
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.trojane.android.learnactivity/com.trojane.android.learnactivity.SecondActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x2
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2
        at android.content.res.Resources.getText(Resources.java:348)
        at android.widget.Toast.makeText(Toast.java:307)
        at com.trojane.android.learnactivity.SecondActivity.onCreate(SecondActivity.java:19)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6669) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 

而出错的代码是:

Toast.makeText(SecondActivity.this,getIntent().getIntExtra("initNum",1),Toast.LENGTH_LONG)

那么我们就看一下 makeText 方法的源代码:

public static Toast makeText(Context context, CharSequence text, @Duration int duration) {
        return makeText(context, null, text, duration);
    }

可以看到该方法中第二个参数的类型是 CharSequence 类型的, 那么CharSequence 是什么类型呢?我们可以看下图:

从上面这个图可以看出 CharSequence 是个接口类型,他的子类有我们熟悉的char、String、StringBuffer 等类型,应该说所有的字符类型都是直接或者间接实现了这个接口,

所以,对于makeText的第二个参数只能传入一个字符型。

原因: makeText 中第二个参数只能是CharSequence的直接或间接实现类,而传入的 int 类型的被认为是String Resource ID

解决方法:将 int 类型数值改成 String或其他字符型

原文地址:https://www.cnblogs.com/trojane/p/10032682.html

时间: 2024-10-19 09:24:10

解决:Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2的相关文章

【资源NotFoundException美元:# 0 x55字符串资源】Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x55

如果遇到这个问题,首先考虑以下原因: 你是否在setText()方法中设置了一个int型变量,比如setText(10). 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件ID, 所以就会报出这个bug. 解决办法:将int型业务数据,转换成String类型即可,比如 tv_price.setText(price+"");

Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0

http://blog.csdn.net/jasper_success/article/details/7059108 如果遇到这个问题,首先考虑以下原因: 你是否在setText()方法中设置了一个int型变量,比如setText(10). 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件ID, 所以就会报出这个bug. 解决办法:将int型业务数据,转换成String类型即可,比如setText(10+“”):

android.content.res.Resources$NotFoundException: String resource ID #0x11

在练习数据绑定时,出现以下错误 FATAL EXCEPTION: main                                                                               Process: com.vogella.android.databinding, PID: 8332                                                                               andr

异常处理android.content.res.Resources$NotFoundException: String resource ID #0x44

错误:android.content.res.Resources$NotFoundException: String resource ID #0x1 原因:一般发生在参数 int resId 错误,你把String赋值给int的resId,所以编译器找不到正确的resource于是报错. 最简单的例子,检查一下你的Toast.makeText()啊textView.setText啊之类的函数,这种函数通常有几个重载,如: textView.setText(CharSequence text);

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

之前忘了记录这个错误,今天又遇到了.唉,人不能纵容自己犯懒,遂记录之. 错误:android.content.res.Resources$NotFoundException: String resource ID #0x1 原因:一般发生在参数 int resId 错误,你把String赋值给int的resId,所以编译器找不到正确的resource于是报错. 最简单的例子,检查一下你的Toast.makeText()啊textView.setText啊之类的函数,这种函数通常有几个重载,如:

android.content.res.Resources$NotFoundException: String resource ID XXXX

错误:android.content.res.Resources$NotFoundException: String resource ID XXXX 原因:一般发生在参数 int resId 错误,你把String赋值给int的resId,所以编译器找不到正确的resource于是报错. 最简单的例子,检查一下你的Toast.makeText()啊textView.setText啊之类的函数,这种函数通常有几个重载,如: textView.setText(CharSequence text);

android.content.res.Resources$NotFoundException:String resource ID #ffffffff

无语,搞了半天,只能去插这个错误代号,结果就找到了这个结果. scoreTextView.setText(score+""); 这个一定要自己手动转换..不科学啊..关键是在eclipse里的提示错误让人以为是id写错了什么的. 以下是别人的一片文章: http://www.blogjava.net/anchor110/articles/355670.html 今天跑程序的时候,出现这样的错误: android.content.res.Resources$NotFoundExcepti

bug android.content.res.Resources$NotFoundException: String resource ID #0x0

android.content.res.Resources$NotFoundException: String resource ID #0x0 找不到资源文件ID #0x0 原因分析如下: 遇到这种情况,很有可能是把一个int型业务数据的 设置setText()或者类似的方法中, 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件ID, 所以就会报出这个bug. 将int型业务数据,转换成String类型即可.

异常 android.content.res.Resources$NotFoundException: String resource ID #0x61

09-09 16:08:41.554: E/Weaver(13140):09-09 16:08:41.554: E/Weaver(13140): android.content.res.Resources$NotFoundException: String resource ID #0x6109-09 16:08:41.554: E/Weaver(13140): at android.content.res.Resources.getText(Resources.java:242)09-09 1