Android Studio und Google Maps API v2

  • Antworten:9
Markus B.
  • Forum-Beiträge: 636

04.11.2013, 23:34:21 via Website

Hallo,
ich bin gerade mit meinen Ideen am Ende und weiß nicht weiter.
Ich versuche im Android Studio ein Projekt zu erstellen, welches die Google Maps API v2 nutzt. Meine sourcen werden vom Android Studio alle validiert und somit gibt es keine Fehler.

Hier mein gradle.build file:

1buildscript {
2 repositories {
3 mavenCentral()
4 }
5 dependencies {
6 classpath 'com.android.tools.build:gradle:0.6.+'
7 }
8}
9apply plugin: 'android'
10
11repositories {
12 mavenCentral()
13}
14
15android {
16 compileSdkVersion 14
17 buildToolsVersion "18.1.1"
18
19 defaultConfig {
20 minSdkVersion 9
21 targetSdkVersion 10
22 }
23}
24
25dependencies {
26 compile 'com.android.support:appcompat-v7:18.0.+'
27 compile 'com.android.support:gridlayout-v7:18.0.+'
28 compile 'com.android.support:support-v4:19.0.+'
29 compile 'com.android.support:support-v13:19.0.+'
30 compile 'com.google.android.gms:play-services:4.0.30'
31}

Folgenden Fehler erhalte ich dann auf dem Device:

111-04 23:24:25.988 30909-30909/fh.muenster.se.strassensheriff E/dalvikvm﹕ Could not find class 'com.google.android.gms.maps.SupportMapFragment', referenced from method myproject.activities.Maps.initMaps
211-04 23:24:25.998 30909-30909/myproject E/AndroidRuntime﹕ FATAL EXCEPTION: main
3 java.lang.NoClassDefFoundError: com.google.android.gms.common.GooglePlayServicesUtil
4 at myproject.activities.Maps.onResume(Maps.java:36)

Mir ist durchaus bewusst was dort falsch rennt aber es will nicht in meinen Kopf, warum die Klassen auf dem Gerät nicht vorhanden sind.
Durch die dependency: com.google.android.gms:play-services:4.0.30 sollten alle nötigen Klassen vorhanden sein. Ich hab in die entsprechende jar geschaut und ja .. die Klassen sind vorhanden.

Hat jmd. eine Idee warum das bei mir nicht laufen will ?


Gruß,
Markus

Antworten
Markus B.
  • Forum-Beiträge: 636

05.11.2013, 10:48:09 via Website

Oder ich frag mal anders:

Hat es schon jmd. geschafft im Android Studio ein Google Maps v2 Projekt ans laufen zu bekommen ?

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

05.11.2013, 12:25:45 via Website

Die Maps API nutze Ich zwar nicht, aber bekommst du im Marktet die Version 'com.google.android.gms:play-services:4.0.30' ?
Ich kann Sie bis jetzt nicht finden :/ 3.2 ist immer noch die Aktuellste ? Was du da einbindest sind nur Stubs, daher auch evtl der Fehler.

Prüfst du ob der Service vorliegt, in der richtigen Version ?

1final int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getActivity().getApplicationContext());
2 if (resp == ConnectionResult.SUCCESS)
3 {
4 locationClient = new LocationClient(getActivity(), this, this);
5 locationClient.connect();
6 //
7 } else
8 {
9 final DialogInterface.OnCancelListener cancelListener = new DialogInterface.OnCancelListener()
10 {
11
12 @Override
13 public void onCancel(final DialogInterface dialog)
14 {
15 getActivity().finish();
16 }
17
18 };

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Markus B.
  • Forum-Beiträge: 636

05.11.2013, 12:51:46 via Website

Hi,
also ich mach folgendes:

1int apiAvailable = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
2 if (apiAvailable != ConnectionResult.SUCCESS)
3 {
4 if (GooglePlayServicesUtil.isUserRecoverableError(apiAvailable))
5 {
6 Dialog errorDialog = GooglePlayServicesUtil.getErrorDialog(apiAvailable, this, MAPS_ERROR_REQUEST_CODE);
7 errorDialog.show();
8 }
9 {
10 Toast.makeText(this, getString(R.string.deviceNotSupported), Toast.LENGTH_LONG).show();
11 finish();
12 }
13 }
14 else
15 {
16 initMaps();
17 }

Also im Prinzip auch das was du gepostet hast.

Zum Thema der Google play Service Version:
Ich hab auf meinem Nexus 7 manuell 4.0.30 installiert. Es ändert aber auch nichts wenn ich z.B. com.google.android.gms:play-services:3.2.+ verwende und dann auch einem Gerät mit der Version 3.2.xx teste.

Gruß,
Markus

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

05.11.2013, 13:43:11 via Website

Wie hast du es manuell installiert ? Wo bekomme ich die APK her ?

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Markus B.
  • Forum-Beiträge: 636

05.11.2013, 16:02:47 via App

Die Jungs und Mädels von xda developer sind da ja recht fix :-)
Wie gesagt anderes Gerät mit 3.2.x das selbe Problem.

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

05.11.2013, 18:51:11 via Website

Hat sich mit der Lieferung des N5 gerade erledigt :) Ich kann weiter machen, nur mit dem Rollout sollte ich noich warten wenn Ich 4.0.30 erwarte ...

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Markus B.
  • Forum-Beiträge: 636

05.11.2013, 20:41:03 via Website

Mac Systems
Hat sich mit der Lieferung des N5 gerade erledigt :) Ich kann weiter machen, nur mit dem Rollout sollte ich noich warten wenn Ich 4.0.30 erwarte ...

Cooles Gerät :)
Der Aussage entnehme ich aber mal das du ein Projekt hast, welches mit Maps sauber rennt ?

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

05.11.2013, 21:09:33 via Website

Ich nutze Maps nicht, aber den LocationClient. Daher ist die Dependency auch gleich.
Ich denke das dein Problem mit dem "Linking" zu tun hat. Deine IDE sieht ja die Klassen, du nutzt Gradle damit hab ich bis jetzt nichts gemacht, einfach
da ich abwarte bis die eine Prod reife version haben. Auf G+ liest man noch über viele Probleme.

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Markus B.
  • Forum-Beiträge: 636

05.11.2013, 22:44:51 via Website

Also ich konnte das Problem nun lösen.

gradlew clean
gradlew build
gradlew installDebug

Danach kompletten neuen Import vom Projekt. Wie ich solche Probleme mag ...

Danke für die Hilfe Mac :)

Antworten