0

私は途方に暮れています。AS 1.5.1 と Gradle 2.8 を使用して、モバイル モジュールとウェア モジュールを使用しています。モバイルとウェアのフレーバーのデバッグ バージョンを選択したとき、それぞれのデバイスで取得するには、それぞれを手動でコンパイル/実行する必要があることを理解しています。そして、これは問題なく発生します。アプリなどをデバッグ/実行します。

ただし、モバイルとウェアのフレーバーをリリースするために、モバイル/ウェアの build.gradle ファイルにsigningConfigsセクションを作成していない場合、ASはダイアログボックスでそうするように促し、その下部に「修正」ボタン。まず、keyAlias、keyPassword、storeFile、および storePassword を追加する wear モジュールを使用してこれを行います。この同じダイアログを使用して、signingConfig を持つ唯一のリリースの buildType を選択します。そのダイアログで [OK] をクリックすると、以前のダイアログの下部に、以前は [FIX] ボタンがあった場所にまだ gradle エラーがあるという文言が表示されます。モバイルgradleファイルを使用して同じ手順を実行すると、ダイアログにもまだgradleエラーがあることが示されます。リリースでの着用の結果のビルド/実行では、モバイル ビルドに含めるために android_wear_micro_apk.apk が作成されません。モバイル モジュールがビルドされると、その中に wear apk はありません。私のアプリケーション全体 (モバイル/ウェア) は、元々、私が AS に手動でマージしたプロジェクトの Eclipse セット (実際には Play ストアで動作していました) でした。

モバイルとウェアを組み合わせたまったく新しい AS プロジェクトを作成してみました。リリースを実行したときも、署名の概念を作成するよう促されました。ただし、それにより、wear のコンパイル中に android_wear_micro_apk.apk が作成されます。さらに、モバイル アプリにはウェアの apk が含まれています。モバイル デバッグ APK とリリース APK のサイズは異なり、リリース APK の方が大きくなっています。「android_wear_micro_apk.apk」ファイルについて私が知る唯一の方法は、この新しい/簡素化されたテスト プロジェクトによるものです。それ以外の場合、私のオリジナルは接着剤を提供しません。

これがモバイルbuild.gradleです

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

android {
    signingConfigs {
        the_pro_mobile_config {
            keyAlias 'MY_ALIAS_PRO'
            keyPassword 'MY_PASSWORD_PRO'
            storeFile file('my_keystore_pro.keystore')
            storePassword 'MY_STORE_PASSWORD_PRO'
        }
        the_free_mobile_config {
            keyAlias 'MY_ALIAS_FREE'
            keyPassword 'MY_PASSWORD_FREE'
            storeFile file('my_keystore_free.keystore')
            storePassword 'MY_STORE_PASSWORD_FREE'
        }
    }
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    packagingOptions {
        exclude 'META-INF'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES/httpcore-4.0.jar'
        exclude 'META-INF/DEPENDENCIES/httpclient-4.3.6.jar'
    }
    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 25
        versionName "2.0.0"

        multiDexEnabled = true
    }
    buildTypes {

        release {

            debuggable false
            jniDebuggable false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-project.txt'), 'proguard-rules.pro'
            zipAlignEnabled true

        }

    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    productFlavors {
        free {
            applicationId "com.my_app.thefree"
            signingConfig signingConfigs.the_free_mobile_config
        }
        pro {
            applicationId "com.my_app.thepro"
            signingConfig signingConfigs.the_pro_mobile_config
        }
    }
}

dependencies {

    wearApp project(':wear')

    compile project(':my_license_module')
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.android.support:support-annotations:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.android.support:palette-v7:23.1.1'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.google.android.gms:play-services-wearable:8.4.0'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'commons-io:commons-io:2.4'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'com.google.android.gms:play-services-identity:8.4.0'
    compile 'com.google.android.gms:play-services-gcm:8.4.0'
}

これが摩耗build.gradleです

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

android {

    signingConfigs {
        the_wearable_config {
            keyAlias 'MY_ALIAS'
            keyPassword 'MY_KEYPASSWORD'
            storeFile file('my_keystore_wearable.keystore')
            storePassword 'MY_STORE_PASSWORD'
        }
    }
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 25
        versionName "2.0.0"

        multiDexEnabled = true
    }
    buildTypes {
        release {
            debuggable false
            jniDebuggable false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-project.txt'), 'proguard-rules.pro'
            zipAlignEnabled true
            signingConfig signingConfigs.the_wearable_config
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    productFlavors {
        free {
            applicationId "com.myapp.my_free_app"
        }
        pro {
            applicationId "com.myapp.my_pro_app"
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.support:wearable:1.3.0'
    compile 'com.google.android.gms:play-services:8.3.0'
}
4

1 に答える 1

0

問題を修正しました。この同じ問題に関する他の投稿があり、それが私が見つけた場所です。

最初にwear gradleファイルを追加し、追加します

publishNonDefault true

ファイルの「android {」セクションにあります。

変更の は、モバイル gradle ファイル用です。

次に、「wearApp project(':wear')」を削除し、これらの両方に置き換えます

freeWearApp project(path:':wear', configuration: 'freeRelease')

proWearApp project(path:':wear', configuration: 'proRelease')

android_wear_micro_apk を作成してモバイル apk に追加しています。

私の次のタスクは、監視するために自動的にインストールされない理由を突き止めることです。繰り返しますが、これはすべて、Eclipse/etc を実行しているときに機能しました。

于 2015-12-31T04:04:09.380 に答える