it-swarm.com.ru

Не удается найти Theme.AppCompat.Light for New Android Поддержка ActionBar

Я пытаюсь внедрить новую библиотеку поддержки ActionBar , которая была выпущена Google пару дней назад. В прошлом я успешно реализовывал ActionBarSherlock без каких-либо проблем, используя тот же метод, который указан на странице Google Developer Настройка библиотеки поддержки , используя руководство о том, как включить ресурсы (что аналогично тому, как это делал 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).

Ошибка, полученная во время сборки

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

style.xml

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

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

348
Brandon Enriquez

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

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

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

386
Svyatoslav Lobach

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

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

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

    чтобы:

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

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

    чтобы:

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

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

    чтобы:

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

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

117
marco110

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

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

28
DrFred

Эта проблема может возникать в 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" />
25
David Douglas

В Eclipse я сделал следующее с библиотекой поддержки Android (APL) и основным проектом (MP):

  1. Убедитесь, что APL и MP имеют одинаковые minSdkVersion и targetSdkVersion.

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

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

    2. Выберите вкладку "Проекты" и добавьте APL.

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

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

23
yogi

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

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

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

16
Rahul Kumar

IntelliJ IDEA решение.

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

3. Добавить новый модуль из существующего источника в ваш проект IDEA.
enter image description here

4. Добавить проект AppCompat. !!! Должно быть и под последним SDK! (пс. Скажите "Да" где-нибудь в процессе этого шага)
enter image description here

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

5.1. Зависимость модуля. Выберите Android-support-v7-appcompat
enter image description here

5.2. 2 шт. Зависимости библиотеки. Добавьте Android-sdk\extras\Android\support\v7\appcompat\libs\Android-support-v4.jar и Android-поддержка-v4\Android-поддержка-v7-appcompat.jar
enter image description here

Всего будет:
enter image description here

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



Решение Android Studio.

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

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

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

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

12
Yuliia Ashomok

для Android Studio 1.2.2

Удалите "Android" из значения атрибута parent:

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

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

7
Crossle Song

Для 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.+"
}
5
geniushkg

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

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

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

3
Wasim A.

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

  1. Из менеджера SDK удалите пакеты "Библиотека поддержки Android" и "Android Репозиторий поддержки".
  2. Переустановите "Библиотеку поддержки Android" и "Android Репозиторий поддержки"
  3. Удалите "Android-support-v7-appcompat" или "appcompat_v7", что еще есть в вашем проекте.
  4. Импортируйте Android-support-v7-appcompat из "adt-bundle-windows-x86_64-20140702\sdk\extras\Android\support\v7\appcompat"
  5. Выберите ваш проект и в файле выберите свойства и найдите Java Build Path, а затем на вкладке "Project" удалите что-то еще, а затем добавьте. и вы должны увидеть "Android-support-v7-appcompat", выбрать и добавить его на вкладку "Проект".
  6. Проверьте ваш файл project.properties ниже ваших файлов Project, вы увидите вот так; target = Android-21 Android.library.reference.1 = ../Android-support-v7-appcompat, затем проверьте файл AndroidManifest.xml, если target - 21 или что вы еще выбрали. Также проверьте ссылку на библиотеку так же, как ваша библиотека, которая была выбрана ранее.

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

3
syildizeli

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

3
i_am_leo

работает:

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

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

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

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

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

2
qwertz

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

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

enter image description here

1
Jesus Dimrix

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

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

1
ban-geoengineering

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

1
Joe C

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

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

(Android SDK Manager -> Дополнительно -> Android Библиотека поддержки)

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

1
Youngsup Kim

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

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

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

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

0
18446744073709551615

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

0
API

в Eclipse щелкните правой кнопкой мыши свой проект-> выберите путь сборки, а затем выберите настройку пути сборки. Из окна выберите файл JAR, который вы хотите, и обновите свой проект

0
Rahul

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

0
Isham

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

0
Rohit Rokde

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

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

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

0
Suraj Dubey

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

0
Barbaros Erdogdu

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

0
Riddhi Dudani

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

  1. Щелкните правой кнопкой мыши на проекте -> Свойства
  2. Выберите Java Путь сборки из левой части таблицы содержимого.
  3. Перейти на вкладку "Библиотеки"
  4. Нажмите кнопку Добавить внешние банки и выберите <your sdk path>\extras\Android\support\v13\Android-support-v13.jar
0
swap_1712

У меня есть сообщение об ошибке:

Ошибка: (18) Ошибка получения родителя для элемента: не найден ресурс, который соответствует указанному имени 'Theme.AppCompat.NoActionBar'.

с этой конфигурацией:

  compileSdkVersion 23
  buildToolsVersion "23.0.1"

Я должен изменить тему с:

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

чтобы:

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

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

Right Click Project-> properties->Android

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

0
Sale