运行 我的 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 版本的设备上。