运行 我的 android 应用程序失败,因为 21 级应用生成 23 级文件
Failed to run my android application because a level 21 app generate level 23 files
这是我的 build.gradle:
应用插件:'com.android.application'
android {
signingConfigs {
}
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.mycompany"
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
debuggable false
signingConfig signingConfigs.config
minifyEnabled true
zipAlignEnabled true
proguardFile 'proguard-rules.pro'
}
debug {
debuggable true
signingConfig signingConfigs.config
}
}
}
dependencies {
compile 'com.facebook.android:facebook-android-sdk:3+'
compile 'com.android.support:support-v4:+'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.google.android.gms:play-services:+'
compile 'com.github.codechimp-org.apprater:library:1.0.+'
compile 'com.mcxiaoke.volley:library:1.0.+'
compile files('libs/disklrucache-2.0.2.jar')
compile files('libs/ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar')
compile files('libs/libGoogleAnalyticsServices.jar')
compile files('libs/socialauth-4.2.jar')
compile files('libs/socialauth-android.jar')
}
我可以毫无问题地编译我的源代码,但是当我尝试 运行:
时收到以下错误消息
/Users/myname/Projects/myproject/build/intermediates/res/merged/release/values-v23/values-v23.xml
Error:(4) Error retrieving parent for item: No resource found that
matches the given name
'android:TextAppearance.Material.Widget.Button.Inverse'. Error:(34)
Error retrieving parent for item: No resource found that matches the
given name 'android:Widget.Material.Button.Colored'. Error:Execution
failed for task ':project:processReleaseResources'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command
'/Users/myname/.android-sdk/build-tools/21.1.2/aapt'' finished with
non-zero exit value 1
我真的不明白。我的 compiledSdkVersion 和 targetSdkVersion 是 21,我什至没有一个名为 values-v23 的文件。为什么会出现这个错误?有人可以帮忙吗?谢谢。
编辑 1:
@Gabriele Mariotti 的回答解决了这个问题。但是问题又来了。
错误:任务“::transformResourcesWithMergeJavaResForRelease”执行失败。
com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/org.brickred/socialauth/pom.properties
File1: /Users/xxxxxx/libs/socialauth-4.2.jar
File2: /Users/xxxxxx/libs/socialauth-4.2.jar
可能是什么原因?我检查了当然只有一个 socialauth-4.2.jar 在我的 libs 文件夹中。
因为您正在使用
compile 'com.android.support:support-v4:+'
compile 'com.google.android.gms:play-services:+'
您正在使用与 支持库 v24.
有依赖关系的最新版本
你必须使用 compileSdkVersion 24
一般来说,使用这种依赖关系 不是一个好主意 (+
),因为你以后将无法重现构建 (因为依赖关系会改变)
您有一个专门针对 API 23 的资源文件。您可以删除此文件或将 compileSdkVersion
更改为 23。后者更好,因为您的应用仍然能够运行 在具有 23 级之前的 Android 版本的设备上。
这是我的 build.gradle:
应用插件:'com.android.application'
android {
signingConfigs {
}
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.mycompany"
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
debuggable false
signingConfig signingConfigs.config
minifyEnabled true
zipAlignEnabled true
proguardFile 'proguard-rules.pro'
}
debug {
debuggable true
signingConfig signingConfigs.config
}
}
}
dependencies {
compile 'com.facebook.android:facebook-android-sdk:3+'
compile 'com.android.support:support-v4:+'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.google.android.gms:play-services:+'
compile 'com.github.codechimp-org.apprater:library:1.0.+'
compile 'com.mcxiaoke.volley:library:1.0.+'
compile files('libs/disklrucache-2.0.2.jar')
compile files('libs/ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar')
compile files('libs/libGoogleAnalyticsServices.jar')
compile files('libs/socialauth-4.2.jar')
compile files('libs/socialauth-android.jar')
}
我可以毫无问题地编译我的源代码,但是当我尝试 运行:
时收到以下错误消息/Users/myname/Projects/myproject/build/intermediates/res/merged/release/values-v23/values-v23.xml
Error:(4) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'. Error:(34) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'. Error:Execution failed for task ':project:processReleaseResources'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Users/myname/.android-sdk/build-tools/21.1.2/aapt'' finished with non-zero exit value 1
我真的不明白。我的 compiledSdkVersion 和 targetSdkVersion 是 21,我什至没有一个名为 values-v23 的文件。为什么会出现这个错误?有人可以帮忙吗?谢谢。
编辑 1:
@Gabriele Mariotti 的回答解决了这个问题。但是问题又来了。
错误:任务“::transformResourcesWithMergeJavaResForRelease”执行失败。
com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/org.brickred/socialauth/pom.properties File1: /Users/xxxxxx/libs/socialauth-4.2.jar File2: /Users/xxxxxx/libs/socialauth-4.2.jar
可能是什么原因?我检查了当然只有一个 socialauth-4.2.jar 在我的 libs 文件夹中。
因为您正在使用
compile 'com.android.support:support-v4:+'
compile 'com.google.android.gms:play-services:+'
您正在使用与 支持库 v24.
有依赖关系的最新版本你必须使用 compileSdkVersion 24
一般来说,使用这种依赖关系 不是一个好主意 (+
),因为你以后将无法重现构建 (因为依赖关系会改变)
您有一个专门针对 API 23 的资源文件。您可以删除此文件或将 compileSdkVersion
更改为 23。后者更好,因为您的应用仍然能够运行 在具有 23 级之前的 Android 版本的设备上。