我的资源中定义的R.java文件和样式存在奇怪的问题。
以下是一些代码:
在res / values / strings.xml中:
<style parent="android:Theme.Dialog" name="PopupWindowStyle">
<item name="android:windowBackground">@drawable/bg1</item>
<item name="android:textColor">@android:color/black</item>
</style>
在AndroidManifest.xml中:
<activity
android:name=".RegisterScreen"
android:icon="@drawable/ico"
android:label="@string/applicationName"
android:theme="@style/PopupWindowStyle"
android:configChanges="locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|fontScale">
</activity>
在autogenerated gen /.../ R.java中:
public static final class style {
public static final int PopupWindowStyle=0x7f090000;
}
在项目中进行一些更改后,eclipse将PopupWindowStyle
的自动生成值从0x7f080000更改为0x7f090000。之后,在Android 1.5上,RegisterScreen
活动显示时没有PopupWindowStyle
样式 - logcat中显示错误:
Skipping entry 0x7f090000 in package table 0 because it is not complex!
在Android 1.6上,但一切正常 - PopupWindowStyle
的工作方式与它的整数值发生变化之前的效果相同。
我正在测试此问题,方法是将源代码还原为旧版本。我可以确认,这个问题在src代码提交之后开始发生,它改变了与这部分代码完全无关的两个文件 - 以及一个自动生成的R.java文件。
知道是什么原因引起的吗?
答案 0 :(得分:1)
我今天也遇到了这个错误。在我的例子中,有2个项目 - 一个是应用程序,另一个是库。两者都包含字符串在库项目的代码中,生成的R类文件具有与应用程序项目相同的一些字符串的整数索引。
我不得不更改app项目的default.properties以使其包含在内 android.library.reference.1 = libraryprojectlocation
其中libraryprojectlocation是库项目的相对磁盘位置。
答案 1 :(得分:1)
我遇到了同样的问题,我在res / values / array.xml中有一个字符串数组。当我将字符串数组移动到res / values / strings.xml时,应用程序运行正常。然而,看看android开发者网站http://developer.android.com/guide/topics/resources/providing-resources.html 他们明确表示在res / values中有多个xml文件是可以的,事实上他们建议使用它。所以我尝试了一个实验,我将有问题的xml文件的名称更改为arrays.xml,注意最后的额外“s”,并且它有效。我也重新启动了我的avd和eclipse。我还使用gui来构建xml文件,而不是输入它。
答案 2 :(得分:0)
确定。我有点解决了这个问题,但我仍然不知道为什么它需要在Android 1.5上那样。
它似乎是由另一个文件引起的:res / values / colors.xml只有这个内容:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="threattypelabel">#4f83cc</color>
<color name="threattypebg">#eeeeee</color>
</resources>
将这些颜色标签移回res / values / strings.xml后,它突然正常工作(前后几次测试)。