【问题标题】:Android: Missing Resource in Intermediates Directory (Is Gradle to Blame?)Android:中间目录中缺少资源(是 Gradle 的错吗?)
【发布时间】:2015-07-22 05:29:31
【问题描述】:

我对 Android Studio 和 OpenCV 都很陌生,所以如果这是一个糟糕的问题,请原谅我。

在下载并安装了 OpenCV 通用库以及适用于 Android 的 OpenCV SDK 之后,我现在想使用 Android Studio 和 Android NDK 来编译示例 OpenCV 项目之一,以便在我的 Android 手机上使用。

我已按照this page 上的说明进行操作,但仍然遇到 gradle 构建错误。错误输出语句如下:

.../AndroidStudioProjects/MyProject/app/build/intermediates/manifests/full/debug/AndroidManifest.xml

错误:(13, 23) 未找到与给定名称匹配的资源(在 'icon' 值为 '@drawable/ic_launcher')。

错误:(15, 24) 未找到与给定名称匹配的资源(在“主题”处,值为“@style/AppTheme”)。

"执行失败 任务':app:ProcessDebugResources'"

根据我非常基本的理解,我猜这意味着 gradle 正在读取 build/intermediates/manifests/full/debug 目录中的 AndroidManifest.xml,并且此清单正在引用执行以下操作的资源不存在。

如果这是我创建的目录和 xml 文件,我会寻找替换丢失的资源或编辑清单。但是由于构建目录中的所有文件和目录都是由 gradle 生成的,所以我不知道该怎么做。

为什么 gradle 会生成一个目录和文件(即 AndroidManifest.xml),而不是另一个(即缺少的资源)?

我对问题根源的最佳猜测是上述链接提供的 build.gradle 文件中的某些内容与我的特定设置不匹配。我尝试调整 build.gradle 以使用不同的 SDK 和 buildTools 版本,但这并没有帮助。

我在 Mac OSX 10.10.4 上运行 Android Studio 1.0.1

如果有人能指出我正确的方向,我将不胜感激。

编辑:这是 app/src/main 目录中的主 AndroidManifest.xml 中的文本。

<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 示例文件中复制,按照我在链接中的说明进行操作。 app/src/main/res/values下没有找到styles.xml,只有strings.xml。

【问题讨论】:

  • 先看看drawable中有没有名为ic_launcher的图片,有没有风格的AppTheme图片
  • 在此处发布您的AndroidManifest.xmlstyles.xml
  • @AwanishRaj 我已经从上面的 AndroidManifest.xml 添加了文本。奇怪的是,我在任何项目目录中都找不到任何标记为 styles.xml 的文件。
  • 你从哪里复制了AndroidManifest.xml?您的/res/drawable-hdpi 文件夹中还有ic_launcher.png 吗?
  • @Sushrita app/src/main/res/drawable 中包含的唯一文件标记为 icon.png

标签: android android-studio build.gradle opencv4android


【解决方案1】:

问题是您试图在您的AndroidManifest.xml 中引用资源ic_launcherAppTheme,这实际上在您的项目中并不存在。这通常发生在您盲目复制粘贴代码时。

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>

希望对您有所帮助!请阅读更多文档。 :)

【讨论】:

  • 感谢您的帮助 Awanish!阅读更多文档总是在我要做的事情清单上 - 不幸的是,这次我正在研究 build.gradle 文档而不是清单上的东西。
  • @rustyDog 没问题。如果有帮助,请接受答案:)
【解决方案2】:

Awanish Raj 的问题“您从哪里复制了 AndroidManifest.xml?”是什么让我走上了正轨。我仍在使用由 Android Studio 生成的通用 AndroidManifest.xml,而不是从 OpenCV 示例中复制 xml 文件。用示例替换通用 xml 解决了问题。

【讨论】:

    猜你喜欢
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2016-06-05
    • 1970-01-01
    相关资源
    最近更新 更多