5

Google マップ API を追加する手順をすべて実行しましたが、このエラーが発生しています。悪い言語で申し訳ありません。

09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/a/du; (406)
01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/a/du;' failed
01-09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/a/ej; (2358)
01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/a/ej;' failed
01-09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/j/k; (2374)
01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/j/k;' failed
01-09 12:20:55.359: E/dalvikvm(5918): Could not find class 'maps.j.k', referenced from method maps.y.ae.a
01-09 12:20:55.359: W/dalvikvm(5918): VFY: unable to resolve new-instance 3566 (Lmaps/j/k;) in Lmaps/y/ae;

これがmanifest.xmlです

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 <uses-permission android:name="com.comparto.piso.permission.MAPS_RECEIVE" />
 <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 <permission
        android:name="com.comparto.piso.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

       <application
              ........ >
            <uses-library android:name="com.google.android.maps" />
   <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="api key" />
    ......
    .....

Java コードでは FragmentActivity を拡張し、ここではその onCreate コード

GooglePlayServicesUtil
                .isGooglePlayServicesAvailable(getApplicationContext());

        GoogleMap map = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map)).getMap();
        if (map != null) {
            map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        }

ここにレイアウトxmlがあります

 <fragment
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/map"
                android:layout_width="fill_parent"
                android:layout_height="300px"
                class="com.google.android.gms.maps.SupportMapFragment" />
4

6 に答える 6

5

デバイスが Google マップ ライブラリで使用されているものと同じ API レベルにない場合、logcat の Dalvik からの「スーパークラス xxxx を解決できません」および「クラス xxxx のリンクに失敗しました」はすべて正常です。

代わりに、次のコマンドを使用して認証エラーが発生しているかどうかを確認する必要があります。

adb logcat | grep Maps

次のようなものが表示された場合:

E/Google Maps Android API(): Authorization failure.

それは、マニフェストで正しい API キーを提供していないことを意味します。Google API コンソール([ API アクセス] セクション)で、ガイドの説明に従って正しいフィンガープリントとパッケージ名のペアを追加したかどうかをもう一度確認してください。

于 2013-01-19T01:00:33.000 に答える
1

通常、このエラー メッセージは、Google Play API が利用できないデバイスで実行している場合に表示されます。を呼び出しisGooglePlayServicesAvailable()ますが、戻り値をチェックしていません。ConnectionResult.SUCCESS続行する前に、それが返されることを確認する必要があります。getErrorDialog()他のいくつかのエラー コードの場合、次のように、アップグレード/インストールするように促すことができます。

int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
switch (resultCode) {
   case ConnectionResult.SUCCESS: // proceed
      break;
    case ConnectionResult.SERVICE_MISSING:
    case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
    case ConnectionResult.SERVICE_DISABLED:
          Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 1);
          dialog.show();
 }

Google によると、Google Play サービス API には「物理的な開発デバイス」が必要なため、エミュレータでは公式にサポートされていません。そのため、エミュレーターで実行している場合、必要なサービスが不足していることはほぼ確実です。人々はエミュレーターで動作するようになったと報告していますが、私は自分で試したことはありません. エミュレーターへの Google Play のインストールを検討したい場合は、この投稿で回答を確認できます。

于 2013-01-14T15:22:53.800 に答える
0

APIキーがありません

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

値パラメーターに api_key を入力します

バージョンgoogle playServiceもありません。追加

<meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

タグmanifest内へ<application

于 2015-01-25T09:10:05.880 に答える
0

レイアウト xml で「class="com.google.android.gms.maps.SupportMapFragment」を使用すると、manifest.xml で Android 3.0 以下の android:minSdkVersion を使用することになります。

次に、以下のリンク先のサイトを参照してください。デバイスで Google マップを実行する前に、何をインストールして設定する必要があるかを理解するのに役立ちます。このリンクは非常に簡単で、デバイスに Google マップを表示するために必要なことを取得できます。

私のリンク先サイト ===> ここをクリック

于 2013-01-16T14:17:34.853 に答える