5

Ich habe ein Problem mit einem alten Projekt, das in IntelliJ ohne Gradle entwickelt wurde. Ich wollte es zu Android Studio und Gradle migrieren, aber ich habe viele Probleme. Da das Projekt ziemlich alt war, wurde die alte Google Play Services-Version verwendet. In Intellij hatte ich gerade libproject des alten gps Abhängigkeiten hinzugefügt (google_play_services_5089000_r19) und alles hat gut funktioniert. In Android Studio konnte ich andere Bibliotheken hinzufügen, indem ich es als Bibliotheksmodul hinzufüge und compile project(':segmentedradios') als Graddle-Abhängigkeit hinzufüge, aber ich kann die gps-Bibliothek einfach nicht funktionieren lassen. Ich habe versucht, es als ein Modul hinzuzufügen, aber Android Studio sagt, dass "kein Modul ausgewählt" nach dem Zeigen auf libroject Verzeichnis der Bibliothek. Ich habe auch versucht, es als gradle Abhängigkeit hinzuzufügen, aber ich bin immer Fehler wie diese halten:Fehler: Paket com.google.android.gcm existiert nicht - Nach der Migration nach Gradle

error: package com.google.android.gcm does not exist 
error: package com.google.android.maps does not exist 
error: cannot find symbol variable GCMRegistrar 

Trotz I ~ 10 verschiedene Lösungen versucht, das Projekt immer noch nicht funktioniert. Wie man es repariert?

Gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion "Google Inc.:Google APIs:18" 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "my_package.app_name" 
     minSdkVersion 14 
     targetSdkVersion 18 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:support-v4:18.0.0' 
    compile files('libs/libGoogleAnalyticsV2.jar') 
    compile project(':segmentedradios') 
    compile 'com.google.android.gms:play-services:5.0.89' 
} 

Antwort

22

GCMRegistrar ist nicht Teil der Google Play-Dienste, aber ein Teil der now entirely deprecatedgcm.jar Datei.

Sie müssen gcm.jar auf Ihre Abhängigkeiten hinzufügen, wenn sie vorübergehend mit möchten, bis Sie zu Google Play Services GCM Implementierung migrieren:

compile files('libs/gcm.jar') 
+0

Dies ist die einzige Lösung, die für meine App funktionierte, als ich von Eclipse zu AS wechselte. – mvreijn

+0

@mvreijn Ich habe das gleiche Problem, das Sie sich geäußert haben bitte wo kann ich die Datei gcm.jar herunterladen * – Rodrigo

+0

@Rodrigo Ich glaube, ich habe die hier vorgestellte Lösung verwendet: https://Stackoverflow.com/a/28066114/1343553 – mvreijn

1

Sie müssen diese beiden Zeilen hinzufügen in Ihre build.gradle-Datei Ihrer Anwendung:

dependencies { 
    ... 
    compile 'com.google.maps:google-maps-services:0.1.3' 
    compile 'com.google.android.gms:play-services:6.5.87' 
}