Android: отсутствует ресурс в промежуточном каталоге (виноват ли Gradle?)

Я очень плохо знаком с Android Studio и OpenCV, поэтому, пожалуйста, прости меня, если это плохой вопрос.

Загрузив и установив общие библиотеки OpenCV, а также OpenCV SDK для Android, я хочу использовать Android Studio и Android NDK для компиляции одного из примеров проектов OpenCV для использования на моем телефоне Android.

Я следовал инструкциям на этой странице, но все еще сталкиваюсь с ошибками сборки с Gradle. Оператор вывода ошибок выглядит следующим образом:

... / AndroidStudioProjects / MyProject / приложение / сборки / промежуточный / манифесты / полный / отлаживать /AndroidManifest.xml

Ошибка:(13, 23) Не найдено ни одного ресурса, соответствующего данному имени (в значке "icon" со значением "@drawable/ic_launcher").

Ошибка:(15, 24) Не найден ресурс, который соответствует указанному имени (в 'theme' со значением '@ style / AppTheme').

"Не удалось выполнить задачу":app:ProcessDebugResources "

С моим базовым пониманием, я предполагаю, что это означает, что gradle читает AndroidManifest.xml в каталоге build / промежуточные / manifest / full / debug, и этот манифест ссылается на ресурсы, которые не существуют.

Если бы это был созданный мной каталог и XML-файл, я хотел бы заменить отсутствующие ресурсы или отредактировать манифест. Но так как все файлы и каталоги в каталоге сборки генерируются Gradle, я понятия не имею, что делать.

Почему Gradle генерирует один каталог и файл (например, AndroidManifest.xml), а не другой (то есть отсутствующие ресурсы)?

Мое лучшее предположение источника проблемы состоит в том, что что-то в файле build.gradle, которое предоставляет вышеупомянутая ссылка, не соответствует моей конкретной установке. Я пытался настроить build.gradle, чтобы использовать разные версии SDK и buildTools, но это не помогло.

Я использую Android Studio 1.0.1 на Mac OSX 10.10.4

Если кто-то может указать мне правильное направление, я был бы очень признателен.

Редактировать: это текст из основного файла AndroidManifest.xml, который находится в каталоге app / src / main.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.baneofsociety.pleasework">

<application android:allowBackup="true" android:label="@string/app_name"
    android:icon="@drawable/ic_launcher" android:theme="@style/AppTheme">

</application>

</manifest>

Все в app / src / main / res копируется непосредственно из файлов примеров OpenCV, согласно инструкциям, которые я следовал в ссылке. Я не нашел файл styles.xml в app / src / main / res / values, только strings.xml.

2 ответа

Проблема в том, что вы пытаетесь сослаться на ресурс ic_launcher а также AppTheme в вашем AndroidManifest.xml которых на самом деле не существует в вашем проекте. Это обычно происходит, когда вы слепо копируете код вставки.

Измените свой значок в AndroidManifest.xml следующим образом, потому что вы сказали, что у вас есть icon.png:

<application android:allowBackup="true" android:label="@string/app_name"
android:icon="@drawable/icon" android:theme="@style/AppTheme">

Вы также должны добавить styles.xml файл. Для этого создайте новый проект в вашей IDE и скопируйте автоматически сгенерированный styles.xml подать в res/values/ каталог. Обычно styles.xml содержит что-то вроде этого:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

</resources>

Надеюсь, поможет! Пожалуйста, прочитайте больше документации.:)

Вопрос Аваниса Радж "Откуда вы скопировали AndroidManifest.xml?" это то, что поставило меня на правильный путь. Я все еще использовал общий файл AndroidManifest.xml, сгенерированный Android Studio, а не копировал XML-файл из образца OpenCV. Замена общего xml на образец устраняет проблему.

Другие вопросы по тегам