Use different build types of Library Module in Android App Module in Android Studio and Gradle

后端 未结 4 1186
名媛妹妹
名媛妹妹 2020-12-13 19:53

I have a workspace containing several different apps and a common library project that I am looking to convert from Eclipse to Android Studio and from Ant to Gradle. Curren

4条回答
  •  -上瘾入骨i
    2020-12-13 20:16

    Update: publishNonDefault is deprecated and has no effect anymore. All variants are now published.

    Documentation taken from Library Publication chapter in Gradle Plugin User Guide.

    By default a library only publishes its release variant. This variant will be used by all projects referencing the library, no matter which variant they build themselves. This is a temporary limitation due to Gradle limitations that we are working towards removing.

    Anyway, there are solutions for this problem.

    Publish All - It is possible to publish all build variants of your library project by adding following line to your library project:

    android {
        publishNonDefault true
    }
    

    Then you should modify your dependencies in app project as follows:

    dependencies {
        releaseCompile project(path: ':yourLibrary', configuration: 'release')
        debugCompile project(path: ':yourLibrary', configuration: 'debug')
    
        // This is also possible
        customCompile project(path: ':yourLibrary', configuration: 'custom')
    }
    

    Change Default - You can change which varaint gets published from your library by adding following line to your library project:

    android {
        defaultPublishConfig "debug"
    }
    

    And in this case you don't have to change app's dependencies because it will always get debug build variant.

提交回复
热议问题