Google Maps in App einbinen

  • Antworten:6
Timur
  • Forum-Beiträge: 18

20.01.2014, 11:38:22 via Website

Hallo,

ich versuche gerade eine App zu programmieren, in der nur Google Maps angezeigt werden soll. Dafür habe ich unter Eclipse ein neues Android Projekt angelgt.
Vorgegeangen bin ich nach dem Google Development für Google Maps (Hier sollte eigentlich der Link stehen. Den darf ich als neues Mitglied aber noch gar nicht Posten => schade).

Wenn ich nun Versuche die App zu starten, wird sie sofort wieder geschlossen.
Ich habe es auch auf dem Emulator probiert. Der zeigt aber immer an, dass die App erst dann ausgeführt wird, wenn Google Play Services aktualisiert wurde.
Im SDK Manager habe ich schon mehrmals nach Updates suchen lassen und gegebenenfalls ein Update gestartet.
Kann mir einer von euch dabei vielleicht weiterhelfen?
Habe ich einen Schritt übersehen?!

Wenn es schon einen passenden Beitrag gibt, wäre der passende Link nett.

Danke schonmal im voraus.

Hier mal der Code:

-Aus der activity Main:
1<?xml version="1.0" encoding="utf-8"?>
2<fragment xmlns:android="http : // schemas.android.com/apk/res/android"
3 android:id="@+id/map"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:name="com.google.android.gms.maps.MapFragment"/>

-Aus der MainActivity:
1package de.first.map;
2
3import android.app.Activity;
4import android.os.Bundle;
5
6public class MainActivity extends Activity {
7
8 @Override
9 protected void onCreate(Bundle savedInstanceState) {
10 super.onCreate(savedInstanceState);
11 setContentView(R.layout.activity_main);
12 }
13}

-Aus dem AndroidManifest:
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="schemas.android.com/apk/res/android"
3 package="de.first.map"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-permission android:name="android.permission.INTERNET"/>
8 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
9 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
10 <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
11 <!-- The following two permissions are not required to use
12 Google Maps Android API v2, but are recommended. -->
13 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
14 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
15
16
17 <uses-sdk
18 android:minSdkVersion="8"
19 android:targetSdkVersion="19" />
20
21 <uses-feature
22 android:glEsVersion="0x00020000"
23 android:required="true"/>
24
25
26 <application
27 android:allowBackup="true"
28 android:icon="@drawable/ic_launcher"
29 android:label="@string/app_name"
30 android:theme="@style/AppTheme" >
31 <activity
32 android:name="de.first.map.MainActivity"
33 android:label="@string/app_name" >
34 <intent-filter>
35 <action android:name="android.intent.action.MAIN" />
36
37 <category android:name="android.intent.category.LAUNCHER" />
38 </intent-filter>
39 </activity>
40
41 <meta-data android:name="com.google.android.gms.version"
42 android:value="@integer/google_play_services_version" />
43
44 <meta-data
45 android:name="com.google.android.maps.API_KEY"
46 android:value="HIER HABE ICH MEINEN API_KEY EINGESETZT/>
47
48 </application>
49
50</manifest>

— geändert am 20.01.2014, 11:39:11

Antworten
impjor
  • Forum-Beiträge: 1.793

20.01.2014, 14:15:18 via App

Bei einem Absturz einfach das LogCat lesen.
Da steht eine schöne Beschreibung des Fehlers mit Zeilen- und Dateiangabe drin.

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Timur
  • Forum-Beiträge: 18

20.01.2014, 17:25:02 via Website

Hi impjor,

momentan habe ich ja anscheinend ein Problem mit dem Emulator (in erster Linie). Der schreit ja immer nach einem Update von Google Play Services. Wenn ich dann aber auf den Updatebutto klicken will, der darunter steht, schmiert gleich alles ab.

Aus der LogCat werde ich nicht so ganz schlau. Vielleicht erkennst du ja was bzw. ihr =)
Ich habe auch schon mal einen neuen Emulator laufen lassen. Dort sagt er mir genau das gleiche.

101-20 11:18:43.606: E/AndroidRuntime(1600): FATAL EXCEPTION: main
201-20 11:18:43.606: E/AndroidRuntime(1600): Process: de.first.map, PID: 1600
301-20 11:18:43.606: E/AndroidRuntime(1600): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=com.google.android.gms flg=0x80000 pkg=com.android.vending }
401-20 11:18:43.606: E/AndroidRuntime(1600): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632)
501-20 11:18:43.606: E/AndroidRuntime(1600): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
601-20 11:18:43.606: E/AndroidRuntime(1600): at android.app.Activity.startActivityForResult(Activity.java:3424)
701-20 11:18:43.606: E/AndroidRuntime(1600): at android.app.Activity.startActivityForResult(Activity.java:3385)
801-20 11:18:43.606: E/AndroidRuntime(1600): at android.app.Activity.startActivity(Activity.java:3627)
901-20 11:18:43.606: E/AndroidRuntime(1600): at android.app.Activity.startActivity(Activity.java:3595)
1001-20 11:18:43.606: E/AndroidRuntime(1600): at com.google.android.gms.dynamic.a$5.onClick(Unknown Source)
1101-20 11:18:43.606: E/AndroidRuntime(1600): at android.view.View.performClick(View.java:4438)
1201-20 11:18:43.606: E/AndroidRuntime(1600): at android.view.View$PerformClick.run(View.java:18422)
1301-20 11:18:43.606: E/AndroidRuntime(1600): at android.os.Handler.handleCallback(Handler.java:733)
1401-20 11:18:43.606: E/AndroidRuntime(1600): at android.os.Handler.dispatchMessage(Handler.java:95)
1501-20 11:18:43.606: E/AndroidRuntime(1600): at android.os.Looper.loop(Looper.java:136)
1601-20 11:18:43.606: E/AndroidRuntime(1600): at android.app.ActivityThread.main(ActivityThread.java:5017)
1701-20 11:18:43.606: E/AndroidRuntime(1600): at java.lang.reflect.Method.invokeNative(Native Method)
1801-20 11:18:43.606: E/AndroidRuntime(1600): at java.lang.reflect.Method.invoke(Method.java:515)
1901-20 11:18:43.606: E/AndroidRuntime(1600): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
2001-20 11:18:43.606: E/AndroidRuntime(1600): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
2101-20 11:18:43.606: E/AndroidRuntime(1600): at dalvik.system.NativeStart.main(Native Method)

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

21.01.2014, 09:45:13 via App

Timur


1android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=com.google.android.gms flg=0x80000 pkg=com.android.vending }

Steht doch da warum es abschmiert.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Timur
  • Forum-Beiträge: 18

22.01.2014, 15:12:14 via Website

Moin,

habe jetzt soweit den Emulator wieder zum laufen bekommen. Nun habe ich die App draufgeladen. Siehe da, sie wird sofort wieder geschlossen. Die Logcat ist beigefügt.
So wie es aussieht, hat es ein Problem mit "Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public"
Es ist bestimmt ein einfacher Fehler, denn ich übersehe. Wie ich ihn behebe, erklärt sich mir aber gerade nicht von selbst. Wenn ich es als Klasse einbinde, hilft es auch nicht viel.

Könnt Ihr weiterhelfen?
Ich habe es auch schon mal auf einem HTC getestet. Dort wird einfach nur ein weißes Fenster angezeigt und rechts unten in der Ecke sind die bekannten Rein-und Rauszoomknöpfe die von Google Maps bekannt sind.

101-22 14:02:31.595: E/Trace(888): error opening trace file: No such file or directory (2)
201-22 14:02:32.285: D/AndroidRuntime(888): Shutting down VM
301-22 14:02:32.285: W/dalvikvm(888): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
401-22 14:02:32.325: E/AndroidRuntime(888): FATAL EXCEPTION: main
501-22 14:02:32.325: E/AndroidRuntime(888): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.map/com.example.map.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
601-22 14:02:32.325: E/AndroidRuntime(888): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
701-22 14:02:32.325: E/AndroidRuntime(888): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
801-22 14:02:32.325: E/AndroidRuntime(888): at android.app.ActivityThread.access$600(ActivityThread.java:130)
901-22 14:02:32.325: E/AndroidRuntime(888): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
1001-22 14:02:32.325: E/AndroidRuntime(888): at android.os.Handler.dispatchMessage(Handler.java:99)
1101-22 14:02:32.325: E/AndroidRuntime(888): at android.os.Looper.loop(Looper.java:137)
1201-22 14:02:32.325: E/AndroidRuntime(888): at android.app.ActivityThread.main(ActivityThread.java:4745)
1301-22 14:02:32.325: E/AndroidRuntime(888): at java.lang.reflect.Method.invokeNative(Native Method)
1401-22 14:02:32.325: E/AndroidRuntime(888): at java.lang.reflect.Method.invoke(Method.java:511)
1501-22 14:02:32.325: E/AndroidRuntime(888): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
1601-22 14:02:32.325: E/AndroidRuntime(888): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
1701-22 14:02:32.325: E/AndroidRuntime(888): at dalvik.system.NativeStart.main(Native Method)
1801-22 14:02:32.325: E/AndroidRuntime(888): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
1901-22 14:02:32.325: E/AndroidRuntime(888): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
2001-22 14:02:32.325: E/AndroidRuntime(888): at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
2101-22 14:02:32.325: E/AndroidRuntime(888): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
2201-22 14:02:32.325: E/AndroidRuntime(888): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
2301-22 14:02:32.325: E/AndroidRuntime(888): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:256)
2401-22 14:02:32.325: E/AndroidRuntime(888): at android.app.Activity.setContentView(Activity.java:1867)
2501-22 14:02:32.325: E/AndroidRuntime(888): at com.example.map.MainActivity.onCreate(MainActivity.java:11)
2601-22 14:02:32.325: E/AndroidRuntime(888): at android.app.Activity.performCreate(Activity.java:5008)
2701-22 14:02:32.325: E/AndroidRuntime(888): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
2801-22 14:02:32.325: E/AndroidRuntime(888): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
2901-22 14:02:32.325: E/AndroidRuntime(888): ... 11 more
3001-22 14:02:32.325: E/AndroidRuntime(888): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public
3101-22 14:02:32.325: E/AndroidRuntime(888): at android.app.Fragment.instantiate(Fragment.java:584)
3201-22 14:02:32.325: E/AndroidRuntime(888): at android.app.Fragment.instantiate(Fragment.java:552)
3301-22 14:02:32.325: E/AndroidRuntime(888): at android.app.Activity.onCreateView(Activity.java:4656)
3401-22 14:02:32.325: E/AndroidRuntime(888): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
3501-22 14:02:32.325: E/AndroidRuntime(888): ... 20 more
3601-22 14:02:32.325: E/AndroidRuntime(888): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment
3701-22 14:02:32.325: E/AndroidRuntime(888): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
3801-22 14:02:32.325: E/AndroidRuntime(888): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
3901-22 14:02:32.325: E/AndroidRuntime(888): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
4001-22 14:02:32.325: E/AndroidRuntime(888): at android.app.Fragment.instantiate(Fragment.java:574)
4101-22 14:02:32.325: E/AndroidRuntime(888): ... 23 more
4201-22 14:02:37.955: I/Process(888): Sending signal. PID: 888 SIG: 9

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

22.01.2014, 20:39:06 via App

Wo ist der Code des besagten Fragments?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Timur
  • Forum-Beiträge: 18

22.01.2014, 21:58:21 via Website

Hi,

ich habe noch mal ein bisschen was abgeändert. Jetzt wird die App immerhin auf dem Emulator nicht sofort wieder geschlossen.
Auf dem Handy wird aber immernoch ein graues Raster angezeigt. Habe auch noch einmal den ApiKey ausgetauscht. Hat leider nichts gebracht =(
Ein Fehler wird nun nicht mehr von der Logcat ausgespuckt.

Hier nun noch mal der Code:

"MainActivity"

1package com.example.map2;
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.view.Menu;
6import com.google.android.maps.MapActivity;
7
8public class MainActivity extends MapActivity{
9
10 @Override
11 protected void onCreate(Bundle savedInstanceState) {
12 super.onCreate(savedInstanceState);
13 setContentView(R.layout.activity_main);
14 }
15
16 @Override
17 protected boolean isRouteDisplayed() {
18 // TODO Auto-generated method stub
19 return false;
20 }
21
22}


"activity_main"

1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout xmlns:android=" http : //schemas.android.com/apk/res/android"
3 android:layout_width="fill_parent"
4 android:layout_height="fill_parent"
5 android:orientation="vertical" >
6
7 <com.google.android.maps.MapView
8 android:id="@+id/mapview"
9 android:layout_width="fill_parent"
10 android:layout_height="fill_parent"
11 android:clickable="true"
12 android:apiKey="HIER HABE ICH MEINEN API_KEY EINGEFÜGT"/>
13
14</LinearLayout>


"AppManifest"

1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http ://schemas.android.com/apk/res/android"
3 package="com.example.map2"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-sdk
8 android:minSdkVersion="8"
9 android:targetSdkVersion="16" />
10 <uses-permission android:name="android.permission.INTERNET"/>
11
12 <application
13 android:allowBackup="true"
14 android:icon="@drawable/ic_launcher"
15 android:label="@string/app_name"
16 android:theme="@style/AppTheme" >
17 <activity
18 android:name="com.example.map2.MainActivity"
19 android:label="@string/app_name" >
20 <intent-filter>
21 <action android:name="android.intent.action.MAIN" />
22
23 <category android:name="android.intent.category.LAUNCHER" />
24 </intent-filter>
25 </activity>
26 <uses-library android:name="com.google.android.maps" />
27 </application>
28
29</manifest>

Antworten