Не удается найти Theme.AppCompat.Light для новой поддержки Android ActionBar

Я пытаюсь внедрить новую библиотеку поддержки ActionBar, выпущенную Google пару дней назад. Раньше я успешно реализовал ActionBarSherlock без каких-либо проблем, используя тот же метод, который указан на странице Support Library Setup - с помощью руководства по включают ресурсы (что похоже на то, как это сделал ActionBarSherlock). У меня есть проект библиотеки, загруженный в мой собственный проект в качестве библиотеки.

Я могу сказать, что библиотека отлично загружается. Когда вместо расширения Activity на моем MainActivity.java я изменил его, чтобы расширить ActionBarActivity (согласно инструкциям Google), ошибок не возникает - и он правильно импортирует.

Я даже попытался обойти файл style.xml и добавить @style/Theme.AppCompat.Light непосредственно в AndroidManifest.xml для <application> и <activity> с помощью android:theme="@style/ThemeAppCompat.Light" со всеми попытками, приводящими к той же ошибке.

Теперь проблема заключается в том, что я не могу заставить ее изменить тему, не говоря уже о том, чтобы даже строить, не вызывая ошибки. Ниже приведена ошибка, за которой следует файл style.xml, который я изменил, чтобы использовать новую тему.

У меня средний опыт работы с приложениями Android, и я запускаю Eclipse с последней версией библиотек поддержки и SDK, скомпилированных с API 18 (Android 4.3).

Полученная ошибка при сборке

error: Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени '@style/Theme.AppCompat.Light'. styles.xml/ActBarTest/res/values ​​line 3 Проблема AAPT для Android

style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.ProsoftStudio.ACTest" parent="@style/Theme.AppCompat.Light">
    </style>
</resources>

Любые предложения? Это никогда не было проблемой для ActionBarSherlock. Я хочу работать над этой новой библиотекой поддержки. Похоже, что .jar загружается, но не ресурсы.

Ответ 1

Вам нужно сделать следующее:

  • File->Import (android-sdk\extras\android\support\v7). Выберите "AppCompat"
  • Project-> properties->Android. В библиотеке разделов "Добавить" и выберите "AppCompat"
  • Вот и все!

Примечание. Если вы используете "андроид: showAsAction" в пункте меню, вам нужно изменить префикс андроида, как в примере http://developer.android.com/guide/topics/ui/actionbar.html

Ответ 2

Если, как и я, вы следуете руководству Android на http://developer.android.com/training/basics/actionbar/setting-up.html и продолжаете получать эту ошибку, попробуйте изменить стиль AppBaseTheme во всех styles.xml файлы. Подробнее:

  • В файле res/values/styles.xml измените строку:

    <style name="AppBaseTheme" parent="android:Theme.Light">
    

    в

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    
  • В файле res/values-v11/styles.xml измените строку:

    <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    

    в

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    
  • В файле res/values-v14/styles.xml измените строку:

    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    

    в

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    

Теперь приложение должно работать нормально.

Ответ 3

Я поделюсь своим опытом с этой проблемой. Из-за этого я сходил с ума, но я узнал, что проблема была ошибкой с самим Eclipse, а не с моим кодом: В eclipse не удалось ссылаться на проект библиотеки Android в другом проекте Android

Итак, если у вас есть библиотека поддержки Android на вашем диске C: и ваш проект на диске D: на вашем компьютере, Eclipse будет работать неправильно и не будет знать, где находится библиотека поддержки Android (зеленый тик становится в красный крест). Чтобы решить эту проблему, вам нужно переместить оба проекта на один и тот же жесткий диск.

Ответ 4

Это проблема, которая может произойти в Android Studio, если вы изменяете модули структуры проекта. В этом случае вам может понадобиться снова добавить зависимости. В текстовом редакторе отредактируйте файл 'build.gradle', чтобы включить необходимые зависимости:

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

Это должно обновить файл '{your_project_name}.iml' с помощью компонентов lib:

<orderEntry type="library" exported="" name="appcompat-v7-19.0.1" level="project" />

Ответ 5

Я сделал следующее в Eclipse с помощью библиотеки поддержки Android (APL) и основного проекта ( MP):

  • Убедитесь, что APL и MP имеют те же minSdkVersion и targetSdkVersion.

  • Добавлен APL как зависимость от сборки для MP:

    • Перейдите в "Свойствa > Путь сборки Java" MP, а затем

    • Выбор вкладки "Проекты" и добавление APL.

  • В свойствах MP в разделе "Android" добавлена ​​ссылка на APL в библиотеке.

1 и 2 получили ссылки на классы Java, отлично работающие... однако я все еще видел ошибку в manifest.xml для MP при попытке ссылки @style/Theme.AppCompat.Light на APL. Это только ушло, когда я выполнил шаг 3.

Ответ 6

Его немного поздно, но вот как я это делаю в AndroidStudio!

Щелкните правой кнопкой мыши на приложении для свойств goto Right click on app to goto properties

Перейдите в Зависимости и нажмите на значок "+" и выберите зависимость библиотеки Go to Dependencies and click on '+' sign and choose library dependency Выберите appcompat-v7 Choose appcompat-v7

Ответ 7

Решение IntelliJ IDEA.

1. Запустите Android SDK Manager и установите последнюю версию SDK и поддержку Android Libarary. Версия поддержки SDK и Android Libarary должна быть той же! 23 в моем случае. Другие варианты дадут вам ошибки.
введите описание изображения здесь
  2. Измените версию SDK проекта IDEA на последнюю, установленную на предыдущем шаге. (ps. вы не можете использовать Maven).
введите описание изображения здесь

3. Добавьте новый модуль из существующих источников в проект IDEA.
введите описание изображения здесь

4. Добавить проект AppCompat. !!! Должен быть и под последним SDK! (ps. Скажите "Да" в любом месте этого шага)
введите описание изображения здесь

5. Откройте настройки основного модуля проекта и добавьте к нему следующие 3 зависимости:

5.1. Зависимость модуля. Выберите android-support-v7-appcompat
введите описание изображения здесь

5.2. 2 шт. Зависимости библиотек. Добавьте android-sdk\extras\android\support\v7\appcompat\libs\android-support-v4.jar и поддержка android-support-v4\android-support-v7-appcompat.jar
введите описание изображения здесь

В общей сложности это будет:
введите описание изображения здесь

6. Очень важно!!!. Добавьте тему с префиксом @style (не другим!).
введите описание изображения здесь



Решение для Android Studio.

1. Запустите Android SDK Manager и установите последнюю версию SDK и поддержку Android Libarary. Версия поддержки SDK и Android Libarary должна быть той же! 23 в моем случае. Другие варианты дадут вам ошибки.
введите описание изображения здесь

2. Добавьте рядом с build.gradle

dependencies {
    compile 'com.android.support:appcompat-v7:23.0.1'
} 

P.S. Если вы новичок в разработке Android, я настоятельно рекомендую вам перейти на Android Studio и Gradle прямо сейчас - вы получите самый простой способ управления своим Android-приложением.

Ответ 8

Для Android Studio 1.2.2

Отбросьте "андроид" из значения атрибута parent:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>

Ответ 9

вам нужна ссылка $ANDROID_SDK/extras/android/support/v7/appcompat

Ответ 10

Для IntelliJ IDEA или Android Studio:

Добавьте это в файл сборки app.gradle

dependencies {
    compile "com.android.support:appcompat-v7:21.0.+"
} 

Замените -v:xx.0+ своей целью сборки, если у вас 19 платформ то это должно быть как:

dependencies {
    compile "com.android.support:appcompat-v7:19.0.+"
}

Ответ 11

Следуйте инструкциям @rcdmk. Удалите поддержку android v4.jar в ВАШЕМ проекте. Он конфликтует с новой обновленной версией, найденной в appcompat.

Ответ 12

Моя проблема устранена с помощью следующих шагов

  • Файл- > Импорт (android-sdk\extras\android\support\v7\appcompat)
  • Щелкните правой кнопкой мыши Project- > properties- > Android. В библиотеке разделов "Добавить" и выберите библиотеку appcompat, которые включены в шаге 1
  • Удалить все файлы из каталога проектов
  • добавить следующий файл в каталог проекта libs <SDK-PATH>\extras\android\support\v13android-support-v13.jar

    При необходимости перезапустите Eclipse. Это. Ваша проблема должна исчезнуть.

Ответ 13

У меня была такая же проблема, и я потратил 4-5 часов на решение. Моя проблема решена с помощью

  • От менеджера SDK удалите пакеты "Android Support Library" и "Android Support Repository".
  • Переустановите "Android Support Library" и "Android Support Repository"
  • Удалите "android-support-v7-appcompat" или "appcompat_v7", что у вас есть в вашем проекте.
  • Импорт android-support-v7-appcompat из "adt-bundle-windows-x86_64-20140702\sdk\extras\android\support\v7\appcompat"
  • Выберите свой проект и из файла выберите свойства и найдите Java Build Path, а затем со вкладки "Project" удалите то, что еще там добавляет. и вы должны увидеть "android-support-v7-appcompat", выберите и добавьте его на вкладку "Проект".
  • Проверьте файл project.properties под файлами Project, вы увидите следующее: целевой = андроид-21 android.library.reference.1 =../Android-поддержка-v7-AppCompat затем проверьте файл AndroidManifest.xml, если цель равна 21 или что вы выбрали. Также проверьте, что ссылка на библиотеку такая же, как и выбранная ранее библиотека.

Надеюсь, вы найдете свое решение.

Ответ 14

работы:

<style name="MyApp" parent="Theme.AppCompat.Light">
</style>
<style name="MyApp" parent="@style/Theme.AppCompat.Light">
</style>
<style name="Theme.AppCompat.Light.MyApp">
</style>

Ответ 15

Поскольку в диалоговом окне "Импорт" отличается от Android Studio 1.0.1, я не смог бы использовать версию Святослава Лобаха.

Вместо этого я загрузил "Репозиторий поддержки Android" в диспетчере SDK. Затем добавили

dependencies {
...
compile "com.android.support:appcompat-v7:18.0.+"
}

до build.gradle. Работал для меня.

Ответ 16

http://developer.android.com/tools/support-library/setup.html имеет ошибку. В Property- > Java build path → 'Project' и 'Order and Export' не должно быть никаких jar. Удаление их и проверка "Android Private Libraries" и "Android Dependencies" решили мою проблему.

Ответ 17

Я испытал ту же проблему, что и OP после щелчка правой кнопкой мыши по моему проекту и выбора Закрыть не связанные проекты.

В моем случае я решил проблему, повторно открыв проект appcompat_v7 и очистив/перестроив оба проекта.

Ответ 18

Это случилось со мной, когда Eclipse (Luna)/AndroidSDK (а не Android Stduio) были использованы с новейшими инструментами и библиотекой по состоянию на 14 января 2015 года во время проекта, такого как HelloWorld. Когда я установил эти инструменты и сделал HelloWorld первым приложением, я принял все значения по умолчанию. - Это проблема в моем случае.

Сначала проверьте, установлена ​​ли библиотека "Библиотека поддержки Android". Если нет, установите его. По умолчанию он не установлен. Вы можете сделать все это в "Android SDK manager", доступном в меню.

(Android SDK Manager → Extra → Android Support Library)

Благословения, (должник) < < <

Ответ 19

Самое быстрое решение:

щелкните правой кнопкой мыши по проекту → Инструменты Android → Добавить библиотеку поддержки.

enter image description here

Ответ 20

Я сделал для этого глупую ошибку. Когда я получал такую ​​же ошибку каждый раз, когда я не мог понять, что случилось. то он щелкнул меня, когда я закрыл все проекты на своем рабочем пространстве, и это было время, когда все проблемы начались. Просто проверьте, не закрыт ли ваш "appcompat_v7". Если затем открыть проект двойным щелчком, а затем очистить и снова создать проект. В моем случае ошибки исчезли. Счастливое кодирование!

Ответ 21

Я не уверен, была ли доступна библиотека поддержки v13, когда этот вопрос был опубликован, но если кто-то все еще борется, я видел, что добавление android-support-v13.jar будет исправлять все. Вот как я это сделал:

  • Щелкните правой кнопкой мыши по проекту → Свойства
  • Выберите путь сборки Java из таблицы содержимого слева.
  • Перейдите на вкладку "Библиотеки".
  • Добавьте кнопку внешних баннеров и выберите <your sdk path>\extras\android\support\v13\android-support-v13.jar

Ответ 22

Для Android Studio или IntelliJ все, что вам нужно сделать, это обновить свои зависимости в gradle.build. Я использовал следующее:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.2'
}

Ответ 23

Я не знаю, как многие из вас это заметили. Библиотека поддержки "appcompat_v7" и ваш проект должны находиться в одном каталоге (я имею в виду каталог рабочей области). Не очищайте свой проект до тех пор, пока его ошибка не станет свободной. У вас будет непростое время с R.java.

Ответ 24

Вам лучше создать новый проект с любым именем, а затем использовать appcompat_v7, чтобы программа создала новую.

Right Click Project-> properties->Android

В библиотеке разделов Add и выберите библиотеку appcompat.

Ответ 25

в eclipse щелкните правой кнопкой мыши на вашем проекте- > выберите путь сборки, а затем выберите configure build path. из окна выберите файл jar, который вы хотите, и обновите проект

Ответ 26

Принятое решение раньше меня работало, но не сейчас. Мне пришлось воссоздать мир приветствия такого же вида (!) В новом рабочем пространстве, скомпилировать его и скопировать все каталоги, включая .hg и .hgignore. hg diff показывает:

-        android:targetSdkVersion="19" />
+        android:targetSdkVersion="21" />

Binary file libs/android-support-v4.jar has changed

Похоже, Eclipse хочет скомпилировать API 21 и ничего не делает с API 19. Темно.

Ответ 27

Если вы добавили библиотеку AppCompat и указали надлежащую ссылку appCompat из местоположения SDK, попробуйте "invalidate cache/Restart".
Вы можете найти его в меню "Файл" в Android Studio.

Ответ 28

В моем случае проблема возникла, так как я хотел использовать SDK, который не включает нужную библиотеку. Когда я увеличил мин. SDK проблема исчезла. Разумеется, напрямую, включая самую библиотеку, также следует удалить эту ошибку.

Ответ 29

Забудьте все. Просто используйте библиотеку appcompat, загруженную с помощью Android Studio. В нем есть все недостающие определения. Независимо от того, используете ли вы в Eclipse или нет.

Ответ 30

У меня была такая же проблема, и даже после импорта/добавления jar/library, как упоминалось в ответах, это не решило бы ошибку. Из-за разочарования я только что создал новое рабочее пространство и создал новый проект андроида, и он автоматически импортировал appcompat_v7, и ошибок в чистом и сборке не было. Не нужно было импортировать отдельную банку/библиотеку вручную. Просто FYI Я использую eclipse Mars.1 Release (4.5.1) и столкнулся с одной и той же проблемой каждый раз, когда я создал новый проект андроида.