Android 1.5 / 1.6 проблема со стилем и автоматически сгенерированным файлом R.java - PullRequest
1 голос
/ 21 апреля 2010

У меня странная проблема с файлом 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.

Есть идеи, что могло вызвать это?

Ответы [ 3 ]

1 голос
/ 29 ноября 2011

Я тоже сегодня сталкивался с этой ошибкой. В моем случае есть 2 проекта - один приложение и другая библиотека. Оба содержат строки. В коде проекта библиотеки сгенерированный файл класса R имеет те же интегральные индексы некоторых строк, что и у проекта приложения.

Мне пришлось изменить default.properties проекта приложения, чтобы включить его android.library.reference.1 = libraryprojectlocation

где libraryprojectlocation - относительное расположение на диске проекта библиотеки.

1 голос
/ 16 декабря 2011

У меня была такая же проблема, у меня был массив строк в файле 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 и затмение. И я также использовал графический интерфейс для создания XML-файла вместо того, чтобы вводить его.

0 голосов
/ 22 апреля 2010

Хорошо. Я вроде решил проблему, но все еще не знаю, почему так должно быть на 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 он внезапно работает нормально (несколько раз проверено вперед и назад).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...