Android 2.3 et google maps API v2
Aujourd'hui j'ai essayé d'utiliser l'api google maps v2 pour Android 2.3.3
Mon étapes:
- ai SHA1 code de débogage.fichier de clés
- créer un nouveau projet dans google api console
- enregistrer un nouvel id
- permis à google maps api android v2
- créer une clé android en utilisant comme entrée SHA1;il.maps (c'.maps est mon
package) - obtenir la clé API
-
mise à jour de fichier AndroidManifest:
<permission android:name="it.mappe.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="it.mappe.permission.MAPS_RECEIVE" /> <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <uses-feature android:glEsVersion="0x00020000" android:required="true"` /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MY_KEY" /> <activity android:name="it.mappe.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
-
mon activité principale
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
-
mon activity_main:
<fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment"/>
-
répertoire de la copie de
ANDROID_SDK_DIR/extras/google/google_play_services/libproject/google-play-services_lib
à la racine de votre projet -
ajouter
/extras/android/compatibility/v4/android-support-v4.jar
comme
externe pot -
ajouter la ligne suivante à la
YOUR_PROJECT/project.properties
android.library.reference.1=google-play-services_lib
Quand je le lance sur mon samsung galaxy S (avec google play apk), il crashs et logcat montre cette erreur
E/AndroidRuntime(6435): FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{it.mappe/it.mappe.MainActivity}:
android.view.InflateException: Binary XML file line #2: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:209)
at android.app.Activity.setContentView(Activity.java:1657)
at it.mappe.MainActivity.onCreate(MainActivity.java:12)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
... 11 more
Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLoader[/data/app/it.mappe-2.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.view.LayoutInflater.createView(LayoutInflater.java:471)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:549)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
... 19 more
quelques suggestions?
MODIFIER
ici mon main.xml:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
- Veuillez poster le contenu réel de
main.xml
- vous pouvez le voir, sous MODIFIER 🙂
- ont été u en mesure d'exécuter google map v2 dans l'émulateur android?
- je n'utilise pas d'émulateur, je utiliser mon vieux galaxy s. vous avez besoin d'avoir google play services est installé sur votre appareil, sans elle, vous ne pouvez pas utiliser la nouvelle gmaps
Vous devez vous connecter pour publier un commentaire.
<fragment>
doit être en minuscules.Aussi, vous êtes à l'aide de
Activity
(pasFragmentActivity
) avecSupportMapFragment
, et je doute que la combinaison de travail.Vérifier si la cible de Google version du SDK dans le projet.propriétés et le soutien lib(Android.jar des versions sont les mêmes.