Android wear application packaging fails with flavours

前端 未结 4 878
借酒劲吻你
借酒劲吻你 2020-12-13 15:19

I have an application that includes a wear app. All works fine on debug tested with a real device. I can alse create the release apk that packs the wear apk inside it. But o

4条回答
  •  既然无缘
    2020-12-13 15:29

    I'll add a bit more to @tormod's answer as he omited some crucial points as to include the publishNonDefault true


    Here are some example Gradle files for packaging a wear module with flavours and buildtypes.

    Module mobile build.gradle

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"
    
        defaultConfig {
            applicationId "com.example.app"
            minSdkVersion 15
            targetSdkVersion 23
            versionCode 85
            versionName "2.5.2"
        }
        buildTypes {
            debug {
                applicationIdSuffix ".debug"
                embedMicroApp = true
                minifyEnabled false
            }
            release {
                embedMicroApp = true
                shrinkResources true
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                zipAlignEnabled true
            }
        }
        productFlavors {
            free{
                applicationId "com.example.app"
            }
            pro{
                applicationId "com.example.app.pro"
            }
        }
    }
    
    configurations {
        freeDebugWearApp
        proDebugWearApp
        freeReleaseWearApp
        proReleaseWearApp
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.4.0'
    
        freeDebugWearApp project(path: ':wear', configuration: 'freeDebug')
        proDebugWearApp project(path: ':wear', configuration: 'proDebug')
    
        freeReleaseWearApp project(path: ':wear', configuration: 'freeRelease')
        proReleaseWearApp project(path: ':wear', configuration: 'proRelease')
    }
    

    Module Wear build.gradle

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"
        publishNonDefault true
    
        defaultConfig {
            applicationId "com.example.app"
            minSdkVersion 20
            targetSdkVersion 23
            versionCode 85
            versionName "2.5.2"
        }
        buildTypes {
            debug {
                applicationIdSuffix ".debug"
                minifyEnabled false
            }
            release {
                shrinkResources true
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                zipAlignEnabled true
            }
        }
        productFlavors {
            free {
                applicationId "com.example.app"
            }
            pro {
                applicationId "com.example.app.pro"
            }
        }
    }
    
    dependencies {
    
        ...
    
    }
    

提交回复
热议问题