2010-04-21 88 views
1

我在我的资源中定义了R.java文件和样式的奇怪问题。风格和自动生成R.java文件的Android 1.5/1.6问题

下面是一些代码:

在res /值/ 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> 

在自动生成的根/.../ R上。 java:

public static final class style { 
    public static final int PopupWindowStyle=0x7f090000; 
} 

After s ome在项目中发生变化,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

不知道,但你的主要文件,即minSdk和targetSDk标签是什么? – 2010-04-21 19:30:01

+0

@Fred:minSdkVersion =“3” - 没有targetSdk标签。 – grzaks 2010-04-21 22:06:56

回答

0

好的。我有点解决了这个问题,但我仍然不知道为什么它需要在Android 1.5上这样。

看来,它是由另一个文件引起:RES /价值/ colors.xml其中只有这样的内容:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="threattypelabel">#4f83cc</color> 
    <color name="threattypebg">#eeeeee</color> 
</resources> 

移动的颜色标记回RES /值后/ strings.xml中突然工作正常(前后几次测试)。

1

我今天也面临这个错误。在我的情况下,有2个项目 - 一个是应用程序,另一个是图书馆。都包含字符串。在库项目的代码中,生成的R类文件与应用程序项目具有相同的一些字符串的整体索引。

我不得不改变应用项目的default.properties,使其包含 android.library.reference.1 = libraryprojectlocation

其中libraryprojectlocation是库项目的相对磁盘位置。

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文件,而不是输入它。