今天用android开发时,在写将txt文件保存到SD卡时,总是报下面的错误,上网查资料也没有找到解决的方法,然后自己找错误的原因和解决方法,详细如下:
报错的消息:
W/InputManagerService(101): Got RemoteException sending setActive(false) notification to pid 3664 uid 10034
W/ResourceType(3831): No known package when getting value for resource number 0xfe080009
找到原因是以下红色的代码:
Toast.makeText(getApplicationContext(), R.string.showSDmessage+R.string.fail, Toast.LENGTH_LONG).show();
以下的是R文件的部分代码:
public static final class string {
public static final int app_name=0x7f040001;
public static final int fail=0x7f040003;
public static final int showSDmessage=0x7f040006;
public static final int showcontenttxt=0x7f040004;
public static final int shownametxt=0x7f040000;
public static final int showsavebtn=0x7f040005;
public static final int success=0x7f040002;
}
这里我们也看到了,showSDmessage(=0x7f040006)+fail(=0x7f040003)恰好就等于警告消息中的:number 0xfe080009的值,而 number 0xfe080009 的值当然是不能在 resource 中获得值,所以后面就会出现错误。
解决方法当然就是把 R.string.showSDmessage+R.string.fail 改为R.string.showSDmessage。
从中,我们也看到了 R.string.showSDmessage+R.string.fail 是把它的值加起来,而不是把映射的字符串组合起来成新的字符串。