Bonjour,
J'ai développé une watchface qui fonctionne très bien mais celle-ci n’apparaît sur ma montre que lorsque j’exécute l'application via android studio.
Je n'arrive pas à faire apparaître la watchface dans le logiciel android wear et sur la montre avec l'installation via l'apk que je génère. Je pense donc qu'il s'agit d'un problème de packaging.
Ce qui fait que mon application est refusé de google play : "Your app does not have Android Wear functionality that’s visible to the user."
build.gradle côté wear
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.virlouvet.barrewatchface"
minSdkVersion 21
targetSdkVersion 21
versionCode appVersionCode
versionName appVersionName
}
signingConfigs {
production {
storeFile ''
storePassword ''
keyAlias ''
keyPassword ''
}
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
output.outputFile.name.replace("wear-popwatchface-release.apk", "wear_popwatchface_release_${variant.versionName}.apk"))
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.production
}
}
productFlavors {
popwatchface {
applicationId "com.virlouvet.barrewatchface"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.support:wearable:1.1.0'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.android.support:support-v4:21.0.3'
wearApp project(':wear')
}
android.applicationVariants.all { variant ->
if (variant.buildType.name == 'release') {
variant.outputs.each { output ->
output.assemble << {
println "Copying Wear APK inside mobile"
copy {
from output.outputFile.path
into "../mobile/src/main/res/raw"
}
}
}
}
} |
build.gradle côté mobile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.virlouvet.barrewatchface"
minSdkVersion 18
targetSdkVersion 21
versionCode appVersionCode
versionName appVersionName
}
signingConfigs {
production {
storeFile ''
storePassword ''
keyAlias ''
keyPassword ''
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.production
}
}
productFlavors {
popwatchface {
applicationId "com.virlouvet.barrewatchface"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//wearApp project(':wear')
//wearApp project(path: ':wear', configuration: 'xavierRelease')
//wearApp files('./src/main/res/raw/wear_popwatchface_release_1.1.5.apk')
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.android.support:support-v4:21.0.3'
}
project.afterEvaluate {
android.applicationVariants.all { variant ->
if (variant.buildType.name == 'release') {
tasks["generate${variant.name.capitalize()}Assets"].dependsOn(":wear:assemble${variant.name.capitalize()}")
variant.outputs.each { output ->
task("handle${variant.name.capitalize()}WearDesc") << {
def apkFileName = "wear-${variant.flavorName}-${variant.buildType.name}.apk"
File wearDescFile = file("${output.processResources.resDir}/xml/wear_desc.xml")
String content = wearDescFile.getText('UTF-8')
content = content.replaceAll(/APPLICATION_ID/, "${variant.mergedFlavor.applicationId}")
content = content.replaceAll(/VERSION_CODE/, "${variant.mergedFlavor.versionCode}")
content = content.replaceAll(/VERSION_NAME/, "${variant.mergedFlavor.versionName}")
content = content.replaceAll(/WEAR_BUILD/, apkFileName)
wearDescFile.write(content, 'UTF-8')
output.processManifest.dependsOn("handle${variant.name.capitalize()}WearDesc")
output.assemble << { // Clean the assets folder of all apk
ant.delete(includeEmptyDirs: 'true') {
fileset(dir: file('./src/main/res/raw/'), includes: '*.apk')
}
}
}
}
}
}
} |
je compile avec :
gradlew clean mobile:assemblePopwatchfaceRelease
J'ai utilisé ce tutoriel : http://blog.octo.com/packager-une-ap...-la-vraie-vie/
J'ai essayé par mal de chose mais rien ne fonctionne, quelqu'un aurais des compilations qui fonctionne ? ou une piste ... (je peux fournir plus de codes si besoin !)
Merci d'avance !
Partager