无法运行我的Android应用程序,因为21级应用程序生成23级文件

时间:2016-09-30 07:19:33

标签: android android-studio android-gradle android-support-library

这是我的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

     

错误:(4)检索项目的父项时出错:找不到资源   匹配给定的名称   '机器人:TextAppearance.Material.Widget.Button.Inverse&#39 ;.错误:(34)   检索项目的父项时出错:找不到与之匹配的资源   名字' android:Widget.Material.Button.Colored'。错误:执行   任务失败':project:processReleaseResources'。

     
    

com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:Process'命令     ' /Users/myname/.android-sdk/build-tools/21.1.2/aapt''完成了     非零退出值1

  

我真的不明白。我编译的SDdVersion和targetSdkVersion是21,我甚至没有名为values-v23的文件。为什么会出现此错误?有人可以帮忙吗?感谢。

修改1:

@Gabriele Mariotti的回答解决了这个问题。但是这里出现了另一个问题。

错误:任务' :: transformResourcesWithMergeJavaResForRelease'执行失败。

  

com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:在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

可能是什么原因?我检查当然在我的libs文件夹中只有一个socialauth-4.2.jar。

2 个答案:

答案 0 :(得分:3)

因为您正在使用

compile 'com.android.support:support-v4:+'
compile 'com.google.android.gms:play-services:+'

您使用的是与支持库v24 相关的最新版本。

您必须使用 compileSdkVersion 24

一般情况下,使用这种依赖项(+不是一个好主意,因为将来无法重现构建(因为依赖项会发生变化) )

答案 1 :(得分:0)

您有一个专门针对API 23的资源文件。您可以删除此文件或将compileSdkVersion更改为23.后者更可取,因为您的应用仍然可以在版本为Android级别之前的Android。