我有一个应用程序,该应用程序的android库模块具有旧的gradle。升级gradle之后,出现了我不知道如何解决的错误。它们主要是自动生成的文件,因此我不知道有什么办法可以修复错误。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed
Output: C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-small-v4\values-small-v4.xml:6: error: invalid resource type 'attr' for parent of style.
Command: C:\Users\NEW03\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971-windows.jar\fbd6ed1dfcb88e47cef4efaddf896fef\aapt2-3.2.0-4818971-windows\aapt2.exe compile --legacy \
-o \
C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\res\merged\debug \
C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-small-v4\values-small-v4.xml
Daemon: AAPT2 aapt2-3.2.0-4818971-windows Daemon #0
Output: C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\src\main\res\values-small\style.xml:4:5-7:13: AAPT: error: invalid resource type 'attr' for parent of style.
Command: C:\Users\NEW03\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971-windows.jar\fbd6ed1dfcb88e47cef4efaddf896fef\aapt2-3.2.0-4818971-windows\aapt2.exe compile --legacy \
-o \
C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\res\merged\debug \
C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-small-v4\values-small-v4.xml
Daemon: AAPT2 aapt2-3.2.0-4818971-windows Daemon #0
这是我的gradle-wrapper.properties
。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
这是我的项目级别build.gradle
。
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
}
}
allprojects {
repositories {
jcenter()
google()
maven { url 'https://maven.google.com/' }
}
}
这是我的应用级别build.gradle
。
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '25.0.0'
defaultConfig {
applicationId "com.csipsimple"
minSdkVersion 14
targetSdkVersion 23
}
useLibrary 'org.apache.http.legacy'
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:23.1.0'
compile project(':sherlok')
configurations.compile.exclude module: 'support-v4'
}
这是values-small-v4.xml。该文件是自动生成的,每次我Rebuild Project
时,我对该文件所做的任何更改都会恢复为旧值。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="menu_in_bar">false</bool>
<dimen name="incall_bottom_bar_height">36dip</dimen>
<integer name="dialpad_layout_weight_autocomplete_list">30</integer>
<style name="TextAppearance.SlidingTabActive" parent="@android:attr/textAppearanceMedium">
<item name="android:textColor">@android:color/black</item>
<item name="android:textSize">22sp</item>
</style>
</resources>
这是整个构建日志。也许这会有所帮助。
:app:checkDebugClasspath
:app:preBuild UP-TO-DATE
:sherlok:preBuild UP-TO-DATE
:sherlok:preDebugBuild UP-TO-DATE
:sherlok:checkDebugManifest
:sherlok:processDebugManifest
:app:preDebugBuild
:sherlok:compileDebugAidl NO-SOURCE
aidl.exe E 11-15 13:43:01 6868 8452 aidl.cpp:581] refusing to generate code from aidl file defining parcelable
aidl.exe E 11-15 13:43:01 4324 6792 aidl.cpp:581] refusing to generate code from aidl file defining parcelable
aidl.exe E 11-15 13:43:01 9176 4956 aidl.cpp:581] refusing to generate code from aidl file defining parcelable
aidl.exe E 11-15 13:43:01 6720 7752 aidl.cpp:581] refusing to generate code from aidl file defining parcelable
:app:compileDebugAidl
:sherlok:packageDebugRenderscript NO-SOURCE
:app:compileDebugRenderscript
:app:checkDebugManifest
:app:generateDebugBuildConfig
:app:prepareLintJar
:app:mainApkListPersistenceDebug
:app:generateDebugResValues
:app:generateDebugResources
:sherlok:compileDebugRenderscript
:sherlok:generateDebugResValues
:sherlok:generateDebugResources
:sherlok:packageDebugResources
:app:mergeDebugResources
C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1044: warn: multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?.
:app:mergeDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed
Output: C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-small-v4\values-small-v4.xml:6: error: invalid resource type 'attr' for parent of style.
Command: C:\Users\NEW03\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\6adb54aa7c184c3636835ca90813d16d\aapt2-3.2.1-4818971-windows\aapt2.exe compile --legacy \
-o \
C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\res\merged\debug \
C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-small-v4\values-small-v4.xml
Daemon: AAPT2 aapt2-3.2.1-4818971-windows Daemon #0
Output: C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\src\main\res\values-small\style.xml:4:5-7:13: AAPT: error: invalid resource type 'attr' for parent of style.
Command: C:\Users\NEW03\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\6adb54aa7c184c3636835ca90813d16d\aapt2-3.2.1-4818971-windows\aapt2.exe compile --legacy \
-o \
C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\res\merged\debug \
C:\Users\NEW03\Documents\AndroidProjects\cssimple\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-small-v4\values-small-v4.xml
Daemon: AAPT2 aapt2-3.2.1-4818971-windows Daemon #0
使用以下代码添加gradle.properties
文件之后。
org.gradle.jvmargs=-Xmx2048m
android.enableAapt2=false
自动生成的文件出现新错误。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':sherlok:generateDebugRFile'.
> Failed to parse XML resource file 'C:\Users\NEW03\Documents\AndroidProjects\cssimple\sherlok\build\intermediates\packaged_res\debug\values\values.xml'
更新: 现在我遇到了这个错误。
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Attribute \"background\" already defined with incompatible format.","sources":[
{"file":
"C:\\Users\\NEW03\\.gradle\\caches\\transforms-1\\files-1.1\\appcompat-v7-26.1.0.aar\\508a22a81bc4139c79d92f3f1428ae0c\\res\\values\\values.xml",
"position":{"startLine":86,"startColumn":4,"startOffset":6582,"endColumn":103,"endOffset":6681}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Original attribute defined here.","sources":[
{"file":
"C:\\Users\\NEW03\\Documents\\AndroidProjects\\cssimple_bak2\\sherlok\\build\\intermediates\\packaged_res\\debug\\values\\values.xml",
"position":{"startLine":2,"startColumn":4,"startOffset":105,"endColumn":54,"endOffset":155}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Attribute \"navigationMode\" already defined with incompatible format.","sources":[
{"file":
"C:\\Users\\NEW03\\Documents\\AndroidProjects\\cssimple_bak2\\sherlok\\build\\intermediates\\packaged_res\\debug\\values\\values.xml",
"position":{"startLine":78,"startColumn":4,"startOffset":4681,"endLine":80,"endColumn":24,"endOffset":4799}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Original attribute defined here.","sources":[
{"file":
"C:\\Users\\NEW03\\.gradle\\caches\\transforms-1\\files-1.1\\appcompat-v7-26.1.0.aar\\508a22a81bc4139c79d92f3f1428ae0c\\res\\values\\values.xml",
"position":{"startLine":86,"startColumn":4,"startOffset":6582,"endColumn":103,"endOffset":6681}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Attribute \"displayOptions\" already defined with incompatible format.","sources":[
{"file":
"C:\\Users\\NEW03\\Documents\\AndroidProjects\\cssimple_bak2\\sherlok\\build\\intermediates\\packaged_res\\debug\\values\\values.xml","position":
{"startLine":78,"startColumn":4,"startOffset":4681,"endLine":80,"endColumn":24,"endOffset":4799}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Original attribute defined here.","sources":[
{"file":
"C:\\Users\\NEW03\\.gradle\\caches\\transforms-1\\files-1.1\\appcompat-v7-26.1.0.aar\\508a22a81bc4139c79d92f3f1428ae0c\\res\\values\\values.xml",
"position":{"startLine":86,"startColumn":4,"startOffset":6582,"endColumn":103,"endOffset":6681}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Attribute \"itemBackground\" already defined with incompatible format.","sources":[
{"file":
"C:\\Users\\NEW03\\Documents\\AndroidProjects\\cssimple_bak2\\sherlok\\build\\intermediates\\packaged_res\\debug\\values\\values.xml",
"position":{"startLine":216,"startColumn":4,"startOffset":11002,"endLine":233,"endColumn":24,"endOffset":12031}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Original attribute defined here.","sources":[
{"file":
"C:\\Users\\NEW03\\.gradle\\caches\\transforms-1\\files-1.1\\design-26.0.0-beta2.aar\\a4d391f9e97b934910e6f25234ed4504\\res\\values\\values.xml",
"position":{"startLine":159,"startColumn":4,"startOffset":8147,"endColumn":462,"endOffset":8605}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Attribute \"actionBarSize\" already defined with incompatible format.","sources":[
{"file":
"C:\\Users\\NEW03\\.gradle\\caches\\transforms-1\\files-1.1\\design-26.0.0-beta2.aar\\a4d391f9e97b934910e6f25234ed4504\\res\\values\\values.xml",
"position":{"startLine":162,"startColumn":4,"startOffset":8872,"endColumn":174,"endOffset":9042}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Original attribute defined here.","sources":[
{"file":
"C:\\Users\\NEW03\\.gradle\\caches\\transforms-1\\files-1.1\\design-26.0.0-beta2.aar\\a4d391f9e97b934910e6f25234ed4504\\res\\values\\values.xml",
"position":{"startLine":29,"startColumn":4,"startOffset":1659,"endColumn":198,"endOffset":1853}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Attribute \"windowMinWidthMajor\" already defined with incompatible format.","sources":[
{"file":
"C:\\Users\\NEW03\\.gradle\\caches\\transforms-1\\files-1.1\\design-26.0.0-beta2.aar\\a4d391f9e97b934910e6f25234ed4504\\res\\values\\values.xml",
"position":{"startLine":162,"startColumn":4,"startOffset":8872,"endColumn":174,"endOffset":9042}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Original attribute defined here.","sources":[
{"file":
"C:\\Users\\NEW03\\.gradle\\caches\\transforms-1\\files-1.1\\appcompat-v7-26.1.0.aar\\508a22a81bc4139c79d92f3f1428ae0c\\res\\values\\values.xml",
"position":{"startLine":125,"startColumn":4,"startOffset":9652,"endLine":127,"endColumn":5296,"endOffset":16283}}],"original":"","tool":"AAPT"}
[org.gradle.api.Project] AGPBI: {"kind":"error","text":"Attribute \"windowMinWidthMinor\" already defined with incompatible format.","sources":[
{"file":
"C:\\Users\\NEW03\\.gradle\\caches\\transforms-1\\files-1.1\\design-26.0.0-beta2.aar\\a4d391f9e97b934910e6f25234ed4504\\res\\values\\values.xml",
"position":{"startLine":162,"startColumn":4,"startOffset":8872,"endColumn":174,"endOffset":9042}}],"original":"","tool":"AAPT"}
我将Android Studio 3.2.1降级到3.1,因为我记得这个错误并未出现在较低版本的Android Studio中。
答案 0 :(得分:1)
在gradle.properties
文件中,您将找到android.enableAapt2=true
,因为您已经升级了gradle,所以它必须为false
。如果您没有此gradle.properties,我建议您回到以前的gradle版本,将其更改为false,然后升级gradle,我不确定是否会起作用。我遇到了这个问题,我不记得我如何解决问题,但我记得一点点与此文件和gradle版本有关
答案 1 :(得分:0)
将此添加到gradle.properteries并同步项目
android.databinding.enableV2=true
android.enableJetifier=true
android.useAndroidX=true
此外,尝试将build.gradle(project)更新为
dependencies {
...
classpath 'com.android.tools.build:gradle:3.2.1'
..
}