0

他のアプリケーションで使用しているのと同じコードで GoogleMapApi V2 を使用しようとすると問題が発生します。私がしたいのは、StartActivity(MapActivityFragment); を実行することだけです。エラーなし

私はそれらの権限を持っています

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<permission
    android:name="com.egdigital.appetablissement.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.egdigital.appetablissemen" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="theApiKey" />

<activity
    android:name="com.egdigital.appetablissement.ActivityGoogleMap"
    android:configChanges="orientation"
    android:label="@string/app_name" >
</activity>

マップ サポート フラグメントを含む XML: activity_maps

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />

そして、マップを管理するこのクラス

public class ActivityGoogleMap extends SherlockFragmentActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
    }
}

ライブラリとしてActionBarSherlock と googlePlayServices-lib を含めました

android-support-v4.jarも外部 jar として含め、依存関係に追加しました

StartActivity(MapActivityFragment) を実行すると、次の大きな汚いエラーが発生します。

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity     ComponentInfo{com.egdigital.appetablissement/com.egdigital.appetablissement.ActivityGoogleMap}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.SupportMapFragment: make sure class name exists, is public, and has an empty constructor that is public
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.SupportMapFragment" on path: /data/app/com.egdigital.appetablissement-1.apk
4

1 に答える 1

1

<application>のand<meta-data>要素を囲む不適切な書式設定があるようAndroidManifest.xmlです。

したがって、次のようになります。

<application
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="theApiKey" />

<activity
    android:name="com.egdigital.appetablissement.ActivityGoogleMap"
    android:configChanges="orientation"
    android:label="@string/app_name" >
</activity>

...次のように変更する必要があります。

<application>        
    <activity
        android:name="com.egdigital.appetablissement.ActivityGoogleMap"
        android:configChanges="orientation"
        android:label="@string/app_name" >
    </activity>
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="theApiKey">
</application>

Android Maps API v2 ドキュメント: https://developers.google.com/maps/documentation/android/start#adding_the_api_key_to_your_application

...いう:

AndroidManifest.xml で、終了タグの直前に [meta-data] 要素を要素の子として追加し</application>ます。

于 2013-07-12T18:44:02.170 に答える