web-dev-qa-db-ja.com

バージョン2では、マップビューにマップが表示されません

マップアクティビティはマップを表示せず、ズームコントロールボタンを備えた白い画面として表示されます。このようなマニフェストファイル:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.demomap"
    Android:versionCode="1"
    Android:versionName="1.0" >
    <uses-sdk
        Android:minSdkVersion="8"
        Android:targetSdkVersion="17" />
   <permission
        Android:name="com.example.demomap.permission.MAPS_RECEIVE"
        Android:protectionLevel="signature" />
    <uses-permission Android:name="com.example.demomap.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" />
        <application
        Android:allowBackup="true"
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name"
        Android:theme="@style/AppTheme" >
        <activity
            Android:name="com.example.demomap.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>

        <meta-data
            Android:name="com.google.Android.maps.v2.API_KEY"
            Android:value="AIzaSyCTQZOcXFS3RpNSVe79HHN1xojat-2MbT4" />
    </application>
    <uses-feature
        Android:glEsVersion="0x00020000"
        Android:required="true" />
</manifest>

これらのような私のXmLファイル:

<?xml version="1.0" encoding="utf-8"?>
<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" />

ログ猫エラー:

05-15 17:15:16.255: E/Google Maps Android API(26201): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

私を助けてください。

20
Suraj

キーが正しくない可能性があります。次のことを試すことができます:

  • this のような正しいパッケージ名を入力してください
  • 最新のGoogle Playを更新した実際のデバイスでテストします。または、エミュレータを このガイド とともに使用します
  • Android at google console site のアクティブなGoogleマップAPI v2 enter image description here

40
Tai Dao

MapViewを使用してこの問題が発生しました

fragment_map.xml

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical" Android:layout_width="match_parent"
Android:layout_height="match_parent">

<com.google.Android.gms.maps.MapView
    Android:id="@+id/mapview"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"/>
    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    String message = getArguments().getString(EXTRA_MESSAGE);
    v = inflater.inflate(R.layout.map_f, container, false);
    vh = new ViewHolder();
    assetHandler = new AssetHandler(getActivity());
    vh.mapView=assetHandler.mapViewHandler.set(v,R.id.mapview);
    vh.mapView.onCreate(savedInstanceState);

    vh.mapView.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(GoogleMap googleMap) {
            googleMap.getUiSettings().setMyLocationButtonEnabled(true);
            googleMap.setMyLocationEnabled(true);
            // Needs to call MapsInitializer before doing any CameraUpdateFactory calls
            try {
                MapsInitializer.initialize(getActivity());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
    return v;
}


@Override
public void onResume() {
    super.onResume();
    vh.mapView.onResume();


}

@Override
public void onPause() {
    vh.mapView.onPause();
    super.onPause();
}

@Override
public void onDestroy() {
    vh.mapView.onDestroy();
    super.onDestroy();
}

@Override
public void onLowMemory() {
    super.onLowMemory();
    vh.mapView.onLowMemory();
}

LifeCycleメソッドが実装されていない場合、マップも表示されないことに気付きました。これが一部の人にとって希望であることを願っています。

17
Ng Zhong Qin

多くの場合、問題はマニフェストのアクセス許可にGoogleサービスのサポートを追加しないことに起因しています。

この許可がマニフェストに存在することを確認してください:

<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES"/>
6
Driss Bounouar

パッケージ名を変更し、コンソールを更新しました。すべてが正しい(マニフェストに正しいSHA1キー、パッケージ名、APIキー)がありましたが、同じエラーメッセージが表示されました。

問題を解決するには、アプリをアンインストールして電話を再起動する必要がありました。何かがキャッシュされていたようです。

6
TrueCoke

ここで述べたように、この問題は通常google-play-serviceライブラリを正しく参照していないという事実に由来します。アプリケーションにGoogleマップを統合しないように書いた次のガイドの最初の3つのステップを見て、すべてのステップを正しく実行していることを確認してください。

Google Maps API V2

3
Emil Adz

私はあなたと同じ問題を抱えていましたが、APIキー/////でパッケージ名を新しいアプリを作成する際に言及していないことに気付いたときに解決しました.API Googleコンソールでそれを確認する必要があります。

must be the same package name at the console and the one in your Eclipse.

それがあなたを助けることを願っています。

3
menzous

私の提案は、MapFragmentを使用できることです。私の知る限り、ほぼすべてのデバイスが11以上にアップグレードされています。 MapFragmentは11以上をサポートします。 google apiコンソールに再度ログインし、アプリケーションキーがそこに存在するかどうかを確認します。私はあなたがすでにそれをしたことを知っています。しかし、もう一度確認してください。 APIキーが保存されないという問題があるためです。毎回新しいプロジェクトを作成する必要があります。たぶん、あなたも同じ問題に直面しています。

2
stickypens

私はこの同じエラーに数時間を費やしました。当初、デバッグキーストアAPIキーが適切に設定されていなかったため、Androidデバイスは、マニフェストにハードコードされた不正なAPIキーをキャッシュしました。プロジェクトをクリーンアップし、デバイスにローカルに保存された残りのAPIキーをすべてクリアしました。

幸運を。

2
i2097i

これは99%のキーストアの問題です。

1)リリースに使用し、C:/Users/EEfimenko/.Android/debug.keystoreからC:\ Users\EEfimenko\Android\MyApp\appフォルダに直接アクセスするためにコピーする同じファイルdebug.keystoreをデバッグします「C:/ Users/...」リンクなしの「debug.keystore」

2)次に、「Android {」のbuild.gradle(モジュール:アプリ)ファイルからポイントを追加します:signingConfigs { debug { storeFile file('debug.keystore') } release { storeFile file('debug.keystore') } }

3)C:\ Users\EEfimenko\Android\MyApp\appフォルダーのcmdから「keytool -list -v -keystore debug.keystore」コマンドを実行し、結果のSHA1フィンガープリントをアプレットの名前と組み合わせます:FR:TY:CG ... ..YF:ER; com.myapp.nameofit

4)次に https://code.google.com/apis/console/b/0/?noredirect に移動します:

a)サービスを有効にし、「Google Maps Android API v2」をオン状態にする

b)FR:TY:CG ..... YF:ER; com.myapp.nameofitを「新規作成Android Key

これで、キーなしの最初のように、キー付きのマップを再び見ることができます!:)

1

署名されたapkと署名されていないapkの2種類があります。apkが署名されている場合は、リリースキーを使用します。デバッグキーを使用してapkに署名すると、機能しません。 APKをエクスポートして実際のデバイスをチェックインするときにリリースキーを使用してください。このドキュメントでは、 https://developers.google.com/maps/documentation/Android/start#the_google_maps_api_key が与えられています。リリース証明書のフィンガープリントを表示します。

1
Shadow

debug.keystore用に作成されたAPIキーを使用している場合、デバッグモードでアプリケーションを実行する場合にのみマップがレンダリングされます。それをしていることを確認してください。

1

私はこれに何時間も費やしました。ディスク上に別のdebug.keystoreがあったことがわかりました(正しいものを使用していることを確認するために検索してください)。また、このエラーが発生した場合は、アプリを少し実行したままにしてください。 Google APIアクセスに正しいSHA1/appを追加すると、エラーが再度発生し、ドキュメントを読んでいるときに突然マップが表示されました。おそらく1〜2分かかりました。

0
EPagePete

私は同じ問題を抱えていたので、APIコンソールで新しいキーを作成しました。また、APIコンソールでリリースキーを記録するための指示に従ってください: リリース証明書のフィンガープリントの表示

それは今私のために働いています...

0
IgorGanapolsky

上記の確認項目に加えて、Eclipseの外部でSHA1キーを生成しました。その後、プロジェクトをEclipseに移動し(Android studio)、Eclipseは新しいSHA1キーを自動的に生成したため、それに基づいて新しいAPI_KEYを生成する必要がありました。

0
bo7o

これが私がしたことです。1)ワークスペースを変更しました。 2)Lance NanekのWebサイト、 http://permalink.gmane.org/gmane.comp.handhelds.Android.devel/98066 から、新しいライブラリ機能では、プロパティのAndroid Build PathセクションでJavaプロジェクトを指定します。Androidプロパティのセクション。

そして、Java Build Path-> Projectsを押す-ライブラリを選択して削除します。これで問題が解決しました。

0
Prachi

Google APIコンソールで同じアプリパッケージ名とGoogle APIコンソールのマップv2サービスで登録する同じsh1でapkに署名する必要があり、同じsh1ディストリビューションでapkに署名することを確認してください魅力のような。

0
Imran Khan

APIコンソールでGoogleマップサービスを有効にしましたか?

0
Nuraiz