在Gradle(Android)中添加productFlavor会导致编译错误

时间:2015-11-16 08:53:48

标签: android gradle

使用以下build.gradle文件编译Gradle:

apply plugin: 'com.android.library'
android {
    compileSdkVersion 21
    buildToolsVersion "22.0.1"
    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
        versionCode 1
        versionName "1.0"
    }
   sourceSets {

        debug {
            jniLibs.srcDirs = ['src/main/jniLibs-dbg']
            res.srcDirs = ['src/main/res-dbg', 'src/main/res-common']
        }
        release {
            jniLibs.srcDirs = ['src/main/jniLibs-rel']
            res.srcDirs = ['src/main/res-rel', 'src/main/res-common']
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }
    lintOptions {
        abortOnError false
    }
}
dependencies {
    compile 'com.android.support:support-v4:23.0.0'
    debugCompile files('libs/debug.jar')
    releaseCompile files('libs/nonDebug.jar')
}

但是,当我添加productFlavors时,编译失败:

productFlavors {
        flavor1{

        }
        flavor2{

        }
    }

味道故意是空的。我只是想看看编译是否成功。稍后我会根据风味添加资源。 控制台日志指示assembleDebug任务失败,因为它找不到debug.jar中的类文件

这是我看到的错误:

出了什么问题:

Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您的 Logcat 是什么抛出

  

注意:某些输入文件使用或覆盖已弃用的API。

首先升级 buildToolsVersion& compileSdkVersion

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
    minSdkVersion 8
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}

您可以更改minSdkVersion 8级别,使用15&设置 targetSdkVersion 23

再次

  

注意:使用-Xlint重新编译:弃用以获取详细信息。注意:有些输入   文件使用未经检查或不安全的操作。注意:重新编译   -Xlint:取消选中以获取详细信息。

您可以访问

  

Failure on build with Gradle on command line with an android studio project : Xlint error

答案 1 :(得分:0)

问题是

apply plugin: 'com.android.library

关键部分是在库build.gradle中将publishNonDefault设置为true,然后您必须按用户指南的建议定义依赖项。

publishNonDefault true
productFlavors {
    flavor1{}
    flavor2{}
}

此外,您正在将样式应用于库,因此您还需要在项目gradle上定义要在项目中使用的样式库

例如。

market1Compile project(path: ':lib', configuration: 'flavor1Release')
market2Compile project(path: ':lib', configuration: 'flavor2Release')

有关详细信息,请查看以下链接

Multi flavor app based on multi flavor library in Android Gradle

如果您发现任何问题,请告诉我,我也会提供帮助

相关问题