Android资源编译在3.3.0-alpha02中失败
每当我尝试构建项目时,都会出现此错误:
Whenever I try and build my project, I get this error:
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文件是:
And my app gradle file is:
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'
有人可以帮我吗?我已经尝试清理和重建项目,并检查了所有有问题的行.我最近甚至都没有修改它们,所以我不确定发生了什么.
Can anyone help me out? I've tried cleaning and rebuilding the project, and checked over all of the lines in question. I didn't even modify them recently, so I'm not sure whats going on.
编辑-我已将classpath
还原为3.1.3,将distributionUrl
还原为4.5,现在我得到了另一条错误消息:
EDIT - I've reverted my classpath
to 3.1.3 and the distributionUrl
to 4.5, and now I get a different error message:
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行:
And points towards two different xml lines that should be valid:
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>
在Android资源编译失败的地方,我得到了类似的东西.
I got something similar where the Android resource compilation failed.
error: <item> inner element must either be a resource reference or empty.
我看到一些建议删除"ids.xml"文件并解决该问题的帖子.虽然可以解决此问题,但由于代码可能引用了该ID标签,因此您可能遭受的伤害更大.
I'm seeing some posts that suggest deleting a "ids.xml" file and that fixes the issue. While that may fix it, you may be doing more harm since code may refer to that id tag.
我通过更新以下文件中的"ids.xml"文件解决了该问题:
I fixed my issue by updating the "ids.xml" file from:
<?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的正确方法. 您也可以参考官方的文档
Notice how the Item tag is a self closing xml element now. This is the correct way to list id's within the "ids.xml" file now. You can refer to the official Android documentation for this as well.
干杯!