помилка ресурсу в андроїд-студії після оновлення: ресурсу не знайдено


101

Після недавнього оновлення Android Studio у нас виникли проблеми з отриманням проекту для компіляції, який працював раніше. Спочатку ми отримували таку помилку:

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

Я оновив ціль побудови sdk у нашому файлі gradle до 23, що призвело до усунення цієї конкретної проблеми, але це залишило нас з помилкою помилок пакету apache.http (конкретно, тона пакетів apache, які ми використовуємо для http-речей, тепер уже відсутня в sdk 23).

Що я хочу зробити, - це вирішити дивну помилку ресурсів, але без оновлення до sdk 23. У мене немає часу переписати бібліотеку наших інструментів зараз, щоб використовувати будь-яку нову реалізацію компонентів apache http. Хтось має ідеї?


Ви не отримуєте помилку в самій appcompat_v7 res / values-v23 / styles.xml (а не у своєму проекті)?
Потіха

1
Не впевнений, що я розумію ваше питання? Ми отримували проблему в згенерованому файлі, як вказано шляхом до файлу у помилці, розміщеній вище.
Джеймс Добсон

Якщо помилка виникає в створених файлах, вам доведеться оновити інструменти збирання в gradle, щоб відповідати версії бібліотек. тобто buildToolsVersion "23.0.1"
BK Batchelor

Відповіді:


78

Змініть версію appcompat у вашому файлі build.gradle назад на 22.2.1 (або все, що ви використовували раніше).


5
Спасибі, це було рішення. Я дотримувався тут інструкцій: code.google.com/p/android/isissue/detail?id=183122#makechanges конкретно, рішення, яке пропонує Скотт. Мені довелося видалити 23.0.0 у моїй папці sdk, видалити версію 23 sdk у менеджері SDK, а потім зробити чистку та відновити
Джеймс Добсон

4
Джеймс, дякую за рішення. Однак я просто вражений цією ситуацією PITA - тому що в мене ніколи не було встановлено appcompat-v7: 22.2.1 !!
Хтось десь

Чи є спосіб це зробити в Eclipse?
Потіха

10
@Solace Eclipse марний
Back Packer

6
@BackPacker №. Проблема Android Studio. У мене гарний комп’ютер і Android Studio займає назавжди, щоб скласти простий додаток зі світовим привіт.
TheRealChx101

197

Потрібно встановити compileSdkVersion на 23.

Оскільки API 23 Android видалив застарілі пакети Apache Http, тож якщо ви використовуєте їх для запитів сервера, вам потрібно буде додати useLibrary 'org.apache.http.legacy'build.gradle, як зазначено в цьому посиланні:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    ...

    //only if you use Apache packages
    useLibrary 'org.apache.http.legacy'
}

1
Це буде працювати, але ви хочете переконатися, що потрібно встановити нову версію SDK. API 23 (платформа Android 6.0). Це дозволить вам підтримувати новіші пристрої. Ось чому при зміні "версії appcompat" на більш нову версію знадобиться нова версія SDK.
JamesDeHart

4
Ця відповідь набагато краща, ніж повернутися до 22.2.1
Йорн Буйтінк

4
Це, безумовно, ідеальна відповідь і, очевидно, правильний хід дій для більшості людей, однак він не відповідає на моє запитання, яке було вирішити проблему без оновлення версії sdk. Це порушує бібліотеку, від якої ми залежимо, але її не встигли оновити. З цього часу ми оновлюємо бібліотеку, щоб скористатися новими можливостями, і тепер можна безпечно оновити до sdk 23.
James Dobson

@RobertoB. Дякую, хороша інформація. Ми вже оновили нашу кодову базу для використання нових бібліотек apache, але, сподіваємось, це допоможе іншим!
Джеймс Добсон

Як це пов’язано з повідомленнями про помилки, про які повідомляє ОП? Я думаю, що compileSdkVersion є дійсним вирішенням, але використання застарілої бібліотеки apache є лише непрямою вимогою.
mdelolmo

21

у вашому проекті файл build.gradle ... напишіть як нижче .. Я вирішив цю помилку, змінивши версію appcompat з версії v7.23.0.0 на v7.22.2.1 ..

dependencies

{

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

}

Знизу на екрані - для кращого розуміння.


1
Ні Ні Ні .... Я цього не очікував! АЛЕ ЦЕ РОБОТИ !! Який сенс тоді оновити його до 23.0.1?
sud007

Цей отримує мій +1: не завжди доречно оновлювати до останньої версії все, що вам хтось скаже. Цей відповідає на початкове запитання і вирішує проблему для мене.
Марк Сміт

10

Увага, приходить неправильна відповідь! Але кожен, хто не має бібліотеки apache, може знайти таке

compileSdkVersion 23
buildToolsVersion "23.0.0"



//...


dependencies {
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:design:23.0.0'    

}

корисно, це зробило трюк для мене.


Чому у нього такі проблеми з бібліотеками apache?
NinjaCoder

4

ви повинні змінити скомпільовануdkversion та targetversion на 23 у файлі build gradle, специфічному для програми. Переконайтеся, що перед цим встановлено sdk 23, версія 6.0. Щоб отримати додаткову допомогу, ви можете переглянути цей вид. https://www.youtube.com/watch?v=pw4jKsOU7go


2

якщо ви отримуєте помилки навіть після завантаження найновішого SDK та Android Studio, я новачок: те, що я зробив, 1. Завантажте останній SDK (я був). 2. Відкрийте структуру файлу-проекту (ctrl + alt + shift + S) 3. У модулях виберіть додаток 4.Вкладка властивостей. Змініть компіляцію версії sdk на api 23 Android 6.0 зефір (остання)

переконайтеся, що компілювати збірки adk versionand і збірники однакової версії (23)

Сподіваюся, що це комусь допоможе, щоб він не постраждав так, як я робив за ці пару днів.


2

Спробуйте відповідати всій версії:

compileSdkVersion 23
buildToolsVersion '23.0.0'
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.0.0'

Це для мене робота.


1

compileSDK має відповідати версії appCompat. TargetSDK може бути 22 (наприклад, якщо ви ще не оновили нову модель дозволу)


1

якщо у вас є :

/Users/james/Development/AndroidProjects/myapp/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

помилка, ви повинні змінити ваш appcompat, buildtools, sdkдо 23 , але, якщо вам не подобається , щоб змінити його і має бути в 22 зробити це:

  • скласти 23
  • ціль 22

0

Він працює лише тоді, коли build.grade було змінено на таке:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "blablabla"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

0

Я помітив, що у мене не було встановлено sdk 23. Тому я спершу встановив його, а потім відтворив свій проект. І це спрацювало чудово. Також компіляціяdkVersion повинна бути 23


0

Поперше,

Спробуйте перевірити папку SDK, для мене це були mydocuments / appdata / sdk .... і т. Д. Отже, в основному моя папка sdk не була завантажена повністю, в основному джерело цієї проблеми. Вам доведеться або використовувати інший повністю завантажений Android sdk (включаючи розділ «Інструменти» та додаткові додатки, які вам справді потрібні), або використовувати sdk eclipse, який ви можете завантажити раніше для своїх розробок Android для Eclipse. Потім будуйте-> ще раз очистіть проект.

Варто спробувати.


0

Оновіть, щоб використовувати API 23 (Android 6.0) або змінити версію appcompat-v7 на 22.2.2 в Gradle. Ця робота для мене під час додавання служби Google Play


0

Спосіб 1: Він показує, що ви не встановили Api 23. Тому встановіть API 23.

Спосіб 2:

Змініть версію appcompat у файлі build.gradle назад на 22.0.1 (або менше).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.