Я в растерянности. Используя AS 1.5.1 и Gradle 2.8, у меня есть мобильные модули и модули износа. Когда я выбираю отладочные версии мобильных устройств и вариантов износа, я понимаю, что мне нужно вручную скомпилировать/запустить каждую из них, чтобы получить доступ к соответствующим устройствам. И это происходит без проблем: отладка/запуск приложений/и т.д.
Однако для выпуска мобильных и износных вариантов, когда я не создал раздел signingConfigs в моих файлах mobile/wear build.gradle, AS предлагает мне сделать это с диалоговым окном, а внизу есть « кнопку «ИСПРАВИТЬ». Сначала я делаю это с моим модулем износа, добавляя в keyAlias, keyPassword, storeFile и storePassword. Затем в этом же диалоговом окне я выбираю один и единственный buildType выпуска, чтобы иметь signingConfig. Когда я нажимаю «ОК» в этом диалоговом окне, в предыдущем диалоговом окне есть формулировка внизу, где раньше была кнопка «ИСПРАВИТЬ», что все еще есть ошибки градиента. Я делаю те же шаги с файлом мобильного градиента, и в диалоговом окне также указывается, что все еще есть ошибки градиента. Результат сборки/запуска износа в версии Release не создает android_wear_micro_apk.apk, чтобы включить его в мобильную сборку. Когда мобильный модуль собран, в нем нет apk-файлов износа. Все мое приложение (мобильное/носимое) изначально представляло собой набор проектов Eclipse (работавших и фактически находящихся в магазине Play), которые я вручную объединил в AS.
Я попытался создать новый проект AS с мобильным телефоном и одеждой. КОГДА я пошел запускать релиз, это тоже побудило меня создать концепцию подписи. Однако при этом android_wear_micro_apk.apk создается во время компиляции износа. Кроме того, мобильное приложение содержит APK-файл износа. Отладочные и релизные APK-файлы для мобильных устройств имеют разные размеры, а релизный — больше. Единственный способ узнать о файле «android_wear_micro_apk.apk» — это новый/урезанный тестовый проект — иначе мой оригинал не дает клея.
Вот мобильная сборка.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'
}