找到Android Studio 3.0未知元素<library>

时间:2017-11-01 20:08:00

标签: android

更新Android Studio后,无法构建其中一个项目。错误消息是:

Error:(20) error: unknown element <library> found.
Error:(20) unknown element <library> found.
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:processDebugResources'.
    > Failed to execute aapt

我的SDK版本是25.我试图使缓存无效并添加distributionUrl=https://services.gradle.org/distributions/gradle-4.1-rc-2-all.zip,但这两个版本都不适合我。

这是我的依赖项:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.4.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:support-v4:25.4.0'
compile 'de.hdodenhof:circleimageview:2.2.0'
testCompile 'junit:junit:4.12'

annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"

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

compile 'com.microsoft.projectoxford:face:1.3.0'
}

这是删除DBFlow后的错误日志:

Error:(20) error: unknown element <library> found.
Error:(20) unknown element <library> found.
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:processDebugResources'.
    > Failed to execute aapt

6 个答案:

答案 0 :(得分:11)

在根项目的gradle.properties中添加此代码:

android.enableAapt2=false

enter image description here

答案 1 :(得分:7)

在android studio 3.1.2中的解决方案

android.enableAapt2=false

不再有效。

此问题的根本原因是Manifest MERGE,当您尝试在项目中包含其他依赖项时会发生这种情况。

检查错误

  1. 打开AndroidManifest.xml

  2. 在窗口底部选择合并清单标签

  3. 立即浏览您的清单文件,并检查处于略带红色背景的清单部分或查找标记。

  4. 右键单击并选择转到声明。检查文件并检查它属于哪个库/依赖。

  5. 删除该库或从repo更新它。

  6. 希望这有帮助。

答案 2 :(得分:1)

这是Github的已报告问题。 projectoxford中的问题似乎已在v.1.0.395

中解决。

答案 3 :(得分:0)

尝试删除已添加此行annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"的注释处理器,如果您还使用了其他任何删除

在工作室3.0以后,他们有内置的注释处理器

答案 4 :(得分:0)

您只需要将其添加到Android清单

<library tools:node="removeAll" />

希望它会有所帮助:)

答案 5 :(得分:0)

它需要将xmlns:tools =“ http://schemas.android.com/tools”附加到清单中,所以我写道:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"   <!-- ADD THIS LINE -->
    package="com.microsoft.projectoxford.visionsample" >

    <!-- ... -->

    <library tools:node="removeAll" />
</manifest>