今天我发现了一个非常奇怪的错误 - 系统在方法SetBackgroundResource()中使用了错误的ResId。当然,我认为这是我的错误。我通过从R文件复制并粘贴它来修复ResId。在我多次重新安装应用程序进行测试后,我注意到再次设置了错误的图像,因此它搞砸了我的应用程序。我去了相应的方法,发现Eclipse插入了一个非常相似的(但错误!..015而不是..016)ResId作为方法参数,没有任何来自我的行为。
我认为这不重要,但这种奇怪的事情总是发生在这里:
LinearLayout nlap = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(10, 5, 10, 0);
nlap.setLayoutParams(params);
nlap.setOrientation(LinearLayout.HORIZONTAL);
nlap.setBackgroundResource(0x7f020016);
nlap.getBackground().setAlpha(111);
return nlap;
答案 0 :(得分:0)
只需清理所有相关项目并重新构建。
永远不要硬编码R.id。
我以前见过这个:对于旧版本的ADT和库项目,这有时会发生。没有看过ADT 21。
最近,对我来说,Eclipse已经开始强调R.id的红色,好像它们是错误的或未知的,但是它们没有出现在Problems视图中,并且它们实际上并没有错。我还在为此寻找错误报告。