1

新しい Google マップ API v2 を使用して Google マップを実装しようとしていますが、何らかの理由でマップが表示されません。

問題は、エミュレーターで実行したときの次の 2 行のエラーだと思います。

 E/ActivityThread( 1373): Failed to find provider info for com.google.settings
 E/ActivityThread( 1373): Failed to find provider info for com.google.android.gsf
.gservices

デバイスでアプリケーションを実行すると、次のエラーが生成されます。

Could not find class 'maps.j.k', referenced from method map.y.ae.a

私の問題は、このリンクと同じように見えます: http://android-er.blogspot.co.il/2012/12/google-maps-android-api-v2-with-blank.html

問題が私の鍵である可能性があると言われているので、次のチュートリアルを使用して再現しました: http://android-er.blogspot.co.il/2012/12/displaying-sha1-certificate-fingerprint.html。しかし、これはまだ私を助けませんでした。

もちろん、サポート ファイルはプロジェクトと Google プレイ サービス ライブラリに追加されます。エミュレーター (エミュレーターで Google マップ v2 を使用できるようにする 2 つのファイルを手動で追加した後) と、android 2.2 を実行している motorola Defy で同じ結果が表示されます。

間違った debug.keystore を使用している可能性がありますか? User.android フォルダにあるファイルを使用しています。その場合、適切なファイルを見つけるにはどうすればよいですか?

編集:私のEclipseは、私のデバッグキーがデフォルトのフォルダにあると言います。そこで、debug.keystore ファイルの名前を変更し、Eclipse を実行してもう一度作成し直しました。その結果、新しい SHA1 キーが作成されました。これを使用して新しい Google Maps API v2 キーを作成しましたが、結果は同じです。いまだに地図が見づらい。

EDIT2: 愚かな私は、Google Maps Android API V2 の代わりに Google Map API V2 を選択しました。この質問は閉じることができます。ありがとう。

すべてのコード ファイルは次のとおりです。

xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
 <fragment
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraBearing="112.5"
    map:cameraTargetLat="-33.796923"
    map:cameraTargetLng="150.922433"
    map:cameraTilt="30"
    map:cameraZoom="13"
    map:mapType="normal"
    map:uiCompass="false"
    map:uiRotateGestures="true"
    map:uiScrollGestures="false"
    map:uiTiltGestures="true"
    map:uiZoomGestures="true" /> 
</LinearLayout>

Fragmentactivity クラスのマップ:

package com.eadesign.skygiraffefinalv2;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import android.os.Bundle;
import com.google.android.gms.maps.*;
import android.widget.ImageView;
import android.widget.TextView;
public class Map extends android.support.v4.app.FragmentActivity
{
private GoogleMap map;


@Override
protected void onCreate(Bundle savedInstanceState) 
{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map);

        if (GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()) == 0)
        {
            map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
        //  map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
        }
}}

マニフェスト ファイル:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.eadesign.skygiraffefinalv2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8"  android:targetSdkVersion="17"/>
<permission android:name="com.eadesign.skygiraffefinalv2.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
<uses-permission android:name="com.eadesign.skygiraffefinalv2.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET" />
<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_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

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

<application
    android:allowBackup="true"
    android:icon="@drawable/sgicon90"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">       


    <activity
        android:name=".Map"
        android:label="@string/app_name"> 
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>                 
    </activity>

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

logcat からのログ:

ent.category.LAUNCHER] flg=0x10000000 cmp=com.eadesign.skygiraffefinalv2/.Map u=
0} from pid 1362
W/WindowManager(  148): Failure taking screenshot for (246x410) to layer 21010
D/AndroidRuntime( 1362): Shutting down VM
I/ActivityManager(  148): Start proc com.eadesign.skygiraffefinalv2 for activity
com.eadesign.skygiraffefinalv2/.Map: pid=1373 uid=10046 gids={3003, 1015, 1028}
D/dalvikvm( 1373): Not late-enabling CheckJNI (already on)
D/dalvikvm( 1362): GC_CONCURRENT freed 99K, 77% free 483K/2048K, paused 1ms+1ms,
total 13ms
D/jdwp    ( 1362): Got wake-up signal, bailing out of select
D/dalvikvm( 1362): Debugger has detached; object registry had 1 entries
E/jdwp    ( 1373): Failed sending reply to debugger: Broken pipe
D/dalvikvm( 1373): Debugger has detached; object registry had 2 entries
E/Trace   ( 1373): error opening trace file: No such file or directory (2)
D/dalvikvm( 1373): GC_CONCURRENT freed 204K, 3% free 8264K/8519K, paused 89ms+6m
s, total 161ms
D/dalvikvm( 1373): WAIT_FOR_CONCURRENT_GC blocked 33ms
E/ActivityThread( 1373): Failed to find provider info for com.google.settings
E/ActivityThread( 1373): Failed to find provider info for com.google.settings
D/dalvikvm( 1373): GC_CONCURRENT freed 312K, 5% free 8471K/8839K, paused 82ms+10
5ms, total 268ms
E/ActivityThread( 1373): Failed to find provider info for com.google.android.gsf
.gservices
E/ActivityThread( 1373): Failed to find provider info for com.google.android.gsf
.gservices
D/dalvikvm( 1373): GC_CONCURRENT freed 227K, 4% free 8797K/9095K, paused 91ms+11
0ms, total 300ms
D/libEGL  ( 1373): Emulator without GPU support detected. Fallback to software r
enderer.
I/Choreographer( 1373): Skipped 54 frames!  The application may be doing too muc
h work on its main thread.
D/gralloc_goldfish( 1373): Emulator without GPU emulation detected.
D/libEGL  ( 1373): loaded /system/lib/egl/libGLES_android.so
I/ActivityManager(  148): Displayed com.eadesign.skygiraffefinalv2/.Map: +3s545ms
I/Choreographer( 1373): Skipped 75 frames!  The application may be doing too muc
 h work on its main thread.
4

1 に答える 1

3

私の場合、 Google Maps AndroidAPIV2の代わりにGoogleMapsAPIV2を選択しました。それを変更した後、問題はなくなりました。したがって、このコードはフルスクリーンのGoogleマップを作成するのにまったく問題がなく、質問を閉じることができます。

ありがとう。

于 2013-02-02T18:22:56.050 に答える