Quelles sont les nécessaires gradle dépendances pour une Application de Moteur Backend avec Google Cloud Messaging?
Quels sont les nécessaires gradle dépendances pour une Application de Moteur Backend avec Google Cloud Messaging?
Actuellement, lorsque vous ajoutez un module comme ça pour votre Android Studio de projet, il ajoute cette dépendance:
'compiler 'com.google.android.gms:jouer-services:8.4.0'
Toutefois, lorsque vous exécutez le projet, vous obtenez ce message d'erreur:
D'erreur:échec de l'Exécution de la tâche
':app:transformClassesWithDexForDebug'.com.android.construire.l'api.transformer.TransformException: com.android.l'ide.commun.processus.ProcessException:
org.gradle.processus.interne.ExecException: Processus de commande
'/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contenu/Home/bin/java"
fini avec sortie non nulle valeur 2
Quelqu'un a suggéré d'utiliser ceci:
defaultConfig {
multiDexEnabled true
}
Mais qui en fait ne fonctionne pas pour moi.
Il semble donc que je dois spécifier que les bibliothèques requises pour FGA + GCM. Pour l'instant j'ai:
compile 'com.google.android.gms:play-services-auth:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'com.google.android.gms:play-services-base:8.4.0'
la liste complète ici. Mais cela ne fonctionne pas. J'ai eu cette erreur:
E/GMPM: GoogleService échec de l'initialisation, statut: 10, Manque un
attendus de la ressource: 'R. string.google_app_id' pour l'initialisation de Google
services. Les causes possibles sont manquantes google-services.json ou
com.google.gms.google-services plugin gradle.
Donc je suis à une perte.
Est-il un autre moyen de contourner ce problème? Ce qui est bizarre, c'est mon vieux FGA + GCM projets les beaux travaux de l'importation de l'ensemble de la google play services. L'importation de ces anciennes versions de google play services dans mon nouveau projet ne fonctionne pas. Donc, je ne suis pas sûr de ce qui se passe.
EDIT: plus d'informations:
J'ai fait quelques tests.
1) a Commencé à nouveau Android Studio de projet, ajouté de nouvelles de google cloud module 'App Engine Java points de terminaison de Module". Auto-généré à construire.niveau (Module: app) ressemble à ceci:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile project(path: ':backend', configuration: 'android-endpoints')
}
Résultat? Compile et s'exécute à la perfection, pas de problèmes!
2) a Commencé à nouveau Android Studio de projet, ajouté de nouvelles de google cloud module 'App Engine arrière-plan avec Google Cloud Messaging'. auto-généré à construire.niveau (Module: app) ressemble à ceci:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.google.android.gms:play-services:8.4.0'
compile project(path: ':backend', configuration: 'android-endpoints')
}
Résultat? Même merde erreur, j'ai été faire!
De sorte qu'il ressemble à la ligne 'compiler 'com.google.android.gms:jouer-services:8.4.0" est le problème. Je l'ai remplacé par
'compiler 'com.google.android.gms:jouer-services-gcm:8.4.0"
puisqu'en théorie, c'est tout ce dont j'ai besoin pour google cloud messaging. Quand je le lance j'obtiens ceci:
12-30 14:14:16.482 10573-10573/com.myapp.myapp
E/GMPM: GoogleService échec de l'initialisation, statut: 10, Manque un
attendus de la ressource: 'R. string.google_app_id' pour l'initialisation de Google
services. Les causes possibles sont manquantes google-services.json ou
com.google.gms.google-services plugin gradle. 12-30 14:14:16.482
10573-10573/com.myapp.myapp E/GMPM: Planificateur pas
ensemble. Pas d'erreur de saisie/avertir. 12-30 14:14:16.502
10573-10623/com.myapp.myapp E/GMPM: le Téléchargement est
pas possible. Application de la mesure désactivé
Donc, on dirait que je suis absent de ce google-services.fichier json ou quelque chose. Je ne comprends pas ce qui s'est passé avec Android Studio, car il y a plusieurs mois, j'ai fait un GCM activé app de la même façon et que l'on compile sans problème. Le gradle.fichier de compilation de l'application ressemble à ceci:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(path: ':gcm-backend', configuration: 'android-endpoints')
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.ganyo:gcm-server:1.0.2'
compile 'com.google.android.gms:play-services:7.5.0'
compile 'com.android.support:support-v4:22.2.0'
}
De sorte qu'il ressemble à Android Studio cessé d'ajouter le 'compiler 'com.ganyo:gcm-serveur:1.0.2" la dépendance.
Alors j'ai couru un projet avec
'compile 'com.ganyo:gcm-server:1.0.2'
'compile 'com.google.android.gms:play-services:8.4.0'
Résultat? Même échec de l'Exécution d'erreur.
Ok, donc essayons de jeux anciens-les services de bibliothèque dans mon nouveau projet:
'compile 'com.ganyo:gcm-server:1.0.2'
'compile 'com.google.android.gms:play-services:7.5.0'
Résultat? Même échec de l'Exécution d'erreur.
Je ne vois pas pourquoi cela ne fonctionne pas hors de la boîte, comme c'était le...
Donc, pour
Missing an expected resource: 'R.string.google_app_id' for initializing Google services
montre que vous avez besoin d'un fichier de configuration appelé google-services.json
par le biais de jeux-services. Pour plus de détails, veuillez consulter la icihmm j'ai fait mais à la fin de la journée, je pense que c'est un autre problème avec mon mac + android studio (à l'aide de PC + d'android studio jusqu'à ce point). Je viens de trouver mon vieux Nuage de points de terminaison Android Studio les projets ne fonctionnent pas sur mon nouveau mac =(
peut-être vous avez besoin de changer votre SHA1 cuz vous changez d'ordinateur.
Voir mes modifications - je crois que c'est un problème avec le processus d'ajout d'un nouveau module GCM, mais je suis à une perte pour expliquer pourquoi cela ne fonctionne pas de la case en plus.Merci pour votre aide continue par le chemin bjiang!
OriginalL'auteur Micro | 2015-12-29
Vous devez vous connecter pour publier un commentaire.
Donc, cela devrait être considéré comme un problème avec Android Studio depuis le simple ajout d'un module "App Engine arrière-plan avec Google Cloud Messaging" sera de briser la construction à chaque fois, même le plus simple des applications, grâce aux Google Play Services de la dépendance", com.google.android.gms:jouer-services:8.4.0' être assez grande pour dépasser la 65K DEX méthode limite sur son propre. Ce problème est en réalité documentée dans 'Configuration De Google Play Services'.
La solution est, comme vous l'avait découvert, à modifier manuellement votre build.gradle et d'ajouter que l'importation de la GCM, com.google.android.gms:jouer-services-gcm:8.4.0'. L'exigence de " google-services.json' être ajoutés manuellement est normal car vous avez besoin de générer pour votre projet developers.google.com. L'ajout de 'multiDexEnabled vrai" n'est pas une bonne solution, car elle augmente votre APK taille inutilement, et vous encore se retrouver avec des doublons de dépendances.
J'ai créé un l'entrée sur l'Android bug tracker de résoudre les dépendances de l'Application Moteur GCM module backend dans Android Studio. Se sentir libre d'étoiles de ce problème de visibilité et de mises à jour.
Je souhaite qu'il sera expliqué dans le futur, peut-être dans le Google de la documentation ou dans Android Studio de message d'erreur, passé beaucoup de temps sur ce, je vous remercie!
OriginalL'auteur Adam
Tests préliminaires montrent que cela fonctionne tellement bien.
Je l'ai pris sur un coup d'oeil à google GCM exemple de projet ici: https://github.com/googlesamples/google-services/tree/master/android/gcm
Et édité mon gradle fichiers. Voici à quoi ils ressemblent maintenant:
APPLICATION:
PROJET:
Et aussi j'ai suivi cette guide (voir l'étape 2) pour générer un google-services.fichier json qui je l'ai fait tomber dans le répertoire app/.
Maintenant, l'application compile et fonctionne (pour l'instant au moins).
Je suis vraiment en colère, cela ne fonctionne pas hors de la boîte avec l'auto généré gradle fichiers et que j'ai à les chasser dans un exemple d'application. Il n'avait pas à être de cette façon, il ya seulement quelques mois. Il a travaillé dès que vous avez ajouté le module GCM.
Si quelqu'un d'autre a des conseils/suggestions pour de futurs projets, s'il vous plaît laissez-moi savoir. =D
il a essayé, n'a pas fonctionné dans mon cas.
L'exemple d'application utilise la plus récente de la mécanique de la GCM, par rapport aux instructions de la github.com/GoogleCloudPlatform/gradle-appengine-templates/tree/.... Je vais déposer un bug de mise à jour de la documentation sur github.
OriginalL'auteur Micro
Si vous procédez à l'étape où vous devez courir avec MultiDex activé, il y a trois étapes que vous devez faire:
L'activer dans votre defaultconfig.ini.php dans Gradle comme vous l'avez déjà essayé:
L'inclure dans vos dépendances:
Ajouter à votre manifeste:
https://developer.android.com/intl/es/tools/building/multidex.html#about
Mais toujours un bon coup d'oeil sur les dépendances que vous avez déjà comme c'est généralement pas nécessaire.
OriginalL'auteur Drewster