【问题标题】:Android 1.5/1.6 issue with style and autogenerated R.java fileAndroid 1.5/1.6 样式问题和自动生成的 R.java 文件
【发布时间】:2010-04-21 15:02:53
【问题描述】:

我的资源中定义的 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>

在自动生成的 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 文件。

知道是什么原因造成的吗?

【问题讨论】:

  • 还不知道,但你的 mainfest 文件中有什么,即 minSdk 和 targetSDk 标签?
  • @Fred: minSdkVersion="3" - 没有 targetSdk 标签。

标签: java android


【解决方案1】:

我今天也遇到了这个错误。就我而言,有 2 个项目 - 一个是应用程序,另一个是库。两者都包含字符串。在库项目的代码中,生成的R类文件与app项目的部分字符串的整数索引相同。

我必须更改应用项目的 default.properties 以使其包含在内 android.library.reference.1=libraryprojectlocation

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

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我在 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 文件,而不是输入它。

    【讨论】:

      【解决方案3】:

      好的。我有点解决了这个问题,但我仍然不知道为什么在 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 后,它突然工作正常(前后测试了几次)。

      【讨论】:

        猜你喜欢
        • 2011-05-29
        • 1970-01-01
        • 2011-08-15
        • 2012-04-06
        • 1970-01-01
        • 1970-01-01
        • 2012-08-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多