所以我的little app is available on Google "Play"到目前为止已下载了一些内容。现在开发者控制台报告了一次崩溃。
此崩溃报告很奇怪。
首先,开发人员控制台给我一个堆栈跟踪和崩溃的原因,一个空指针异常。但是没有关于Android版本或硬件的信息,因此我无法创建模拟器设置来重新创建错误。
这是违规行:
((TextView) findViewById(R.id.speechbubble)).setText(getResources().getString(R.string.welcome_nomusic));
在我测试的所有设备和模拟器上,这都有效,并产生一个很好的speech bubble message。
为什么它不起作用?我知道布局包含一个名为“speechbubble”的视图,并且字符串资源包含“welcome_nomusic”的文本消息。
那么,知道这里发生了什么,以及如何解决它?
已修复,感谢您的回答。我的错误是为不同的屏幕分辨率添加了额外的布局,而不是在我上次更改代码后测试所有这些布局。 : - /
答案 0 :(得分:0)
只需记录所涉及的每个对象:
log("R: " + R);
log("R.id: " + R.id);
log("R.id.speechbubble: " + R.id.speechbubble);
log("textView: " + findViewById(R.id.speechbubble));
log("getResources(): " + getResources());
log("R.string: " + R.string);
log("R.string.welcome_nomusic: " + R.string.welcome_nomusic);
log("text: " + getResources().getString(R.string.welcome_nomusic));
在此块中的某个位置,您将获得null。
答案 1 :(得分:0)
可能发生的情况是您尝试呼叫的资源可能不存在于某个设备或者很难找到它。
检查所有布局/字符串/资源在不同大小等方面是否相同.ADT 17 +中的新Lint工具应该有所帮助