每当我尝试构建项目时,都会出现此错误:
Android resource compilation failed
Output:
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:497: error: :listItem>.
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:498: error: :listItem>.
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:499: error: :listItem>.
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:503: error: :listItem>.
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:504: error: :listItem>.
Command: C:\Users\smart\.gradle\caches\transforms-1\files-1.1\aapt2-3.3.0-alpha02-4818971-windows.jar\a281fb5dd58b50951126c2252f73d452\aapt2-3.3.0-alpha02-4818971-windows\aapt2.exe compile --legacy \
-o \
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\res\merged\debug \
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
Daemon: AAPT2 aapt2-3.3.0-alpha02-4818971-windows Daemon #2
有问题的xml行是:
<color name="colorPrimary">#d50000</color>
<color name="colorPrimaryDark">#b71c1c</color>
<color name="colorAccent">#757575</color>
<listItem name="windowActionBar">false</listItem>
<listItem name="windowNoTitle">true</listItem>
我正在使用
classpath 'com.android.tools.build:gradle:3.3.0-alpha02'
我的应用gradle文件是:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.my.kellen.shoppinglist"
minSdkVersion 14
targetSdkVersion 26
versionCode 2
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:design:26.1.0'
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.2'
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.bignerdranch.android:expandablerecyclerview:1.0.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
// Room components
implementation "android.arch.persistence.room:runtime:1.1.1"
annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
androidTestImplementation "android.arch.persistence.room:testing:1.1.1"
// Lifecycle components
implementation "android.arch.lifecycle:extensions:1.1.1"
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
}
apply plugin: 'com.google.gms.google-services'
有人可以帮我吗?我尝试清理和重建项目,并检查了所有有问题的行。我最近甚至都没有修改它们,所以我不确定发生了什么。
编辑-我已将classpath
还原为3.1.3,将distributionUrl
还原为4.5,现在我收到了另一条错误消息:
Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details.
日志显示:
error: :listItem>.
Message{kind=ERROR, text=error: :listItem>., sources=`[C:\Users\smart\AndroidStudioProjects\ShoppingList\app\src\main\res\values\styles.xml:17:5-90], original message=, tool name=Optional.of(AAPT)}`
并指向应该有效的两个不同的xml行:
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>
答案 0 :(得分:1)
为什么不更改gradle插件版本?
首先:通过查看您的gradle文件,'file'->'setting'-''Build,Execuion,Deployment'->'Gradle',找到可用的本地gradle,然后您将找到此文件其中包含一个名为“ wrapper \ dists”的文件,将其打开,您将看到它们。
第二个:编辑名为“ gradle-wrapper.properties”的文件,并将distributionUrl
的值更改为本地gradle组中包含的版本。
最后:更改classpath
中的build.gradle
,有一个link可以帮助您。
帮助您了解我的英语不好,以便我可以为您提供帮助:)
答案 1 :(得分:1)
在Android资源编译失败的地方,我得到了类似的东西。
error: <item> inner element must either be a resource reference or empty.
我看到一些建议删除“ ids.xml”文件并解决该问题的帖子。虽然可以解决此问题,但由于代码可能引用了该ID标签,因此您可能遭受的伤害更大。
我通过更新以下文件中的“ ids.xml”文件解决了问题:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="item_click_support" type="id">id</item>
</resources>
收件人:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="item_click_support" type="id"/>
</resources>
请注意,Item标记现在是如何自动关闭的xml元素。这是现在在“ ids.xml”文件中列出ID的正确方法。 您也可以参考官方的Android documentation。
干杯!
答案 2 :(得分:0)
我不知道为什么,但这对我的项目有用。 例如问题,我会像您一样收到接缝错误。 我这样修复:我搜索错误位置
Android resource compilation failed
Output: F:\Works\AndroidProject\lbw\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1703: error: duplicate value for resource 'attr/progress' with config ''.
F:\Works\AndroidProject\lbw\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1703: error: resource previously defined here.
Command: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\802c7c840816e44cd175d342954a2954\aapt2-3.2.1-4818971-windows\aapt2.exe compile --legacy \
-o \
F:\Works\AndroidProject\lbw\app\build\intermediates\res\merged\debug \
F:\Works\AndroidProject\lbw\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
Daemon: AAPT2 aapt2-3.2.1-4818971-windows Daemon #0
然后我搜索文件
F:\Works\AndroidProject\lbw\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
我在第1703行找到了位置 enter image description here
,我在文件中找到错误位置 enter image description here
然后我在absProgressBar
中复制名称attrs
搜索,然后得到错误位置
enter image description here
比我评论<!-- <attr name="progress" format="integer" />-->
生成argen错误要消失了。
答案 3 :(得分:0)
当我升级android studio时,发生此错误“ Android资源编译失败”。
我在那里搜索每一个,但找不到解决方案,因此我在values.xml
中删除了三行
<item type="id" name="id_name" />
<item name="omfm_main_label_id" type="id">OMFMLabelId</item>
<item name="omfm_tag" type="id">OMFMTag</item>
因此有效。
注意:build.gradle
中的所有库都必须升级。
piero.ir