Android上的Google地图无法加载

时间:2014-10-02 23:35:10

标签: android google-maps

我的应用程序中有一个正在运行的Google地图,我不得不开始使用其他计算机。

所以我使用Android Studio在这台新计算机上下载了我的源代码。

现在,我无法再显示Android地图了。

我在Google控制台的新计算机中添加了SHA1,但它仍然无效......

我的logcat中有这种消息:

Error processing: com.google.maps.api.android.lib6.b.d@536cbcf8 not retrying
Error processing: com.google.maps.api.android.lib6.gmm6.d.h@539c5f14 not retrying

我认为我的清单是可以的,因为这个配置曾经起作用,但现在是:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>

...

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

有没有人有想法?

编辑:答案

好的,所以我认为不是,但它确实是SHA 1键的问题。当我更换计算机时,我只添加了我签名的APK密钥和忘记添加我的调试APK密钥,我正在编译调试版本。 谢谢你们所有人:)

5 个答案:

答案 0 :(得分:7)

因为2个不同的机器有两个不同的调试键,你应该将旧的debug.key文件从以前的机器android sdk复制到新的机器android sdk文件夹,否则你应该用新的机器debug.key文件转到新的map api键

答案 1 :(得分:3)

确保您已在项目的Google页面上的API列表中启用Google Maps Android API v2

这会产生同样的错误。我浪费了几个小时,所以希望将来可以节省一些人的时间。

答案 2 :(得分:2)

转到您的GoogleMapsAPI凭据,并输入您的软件包以及您的android keyhash。

答案 3 :(得分:1)

检查Google地图API密钥生成是否正确完成。

这会对你有所帮助 http://www.w3schools.com/googleapi/google_maps_api_key.asp

答案 4 :(得分:0)

AndroidManifest.xml

vector x

添加内部应用程序标记

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

XML

<!--For Android Pie to Load Map-->
<uses-library
    android:name="org.apache.http.legacy"
    android:required="false" />

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="GOOGLE_API_KEY" />

在片段中加载地图

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="200dp" />

在活动中加载地图

implements OnMapReadyCallback

private GoogleMap mMap;

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    FragmentManager fm = getChildFragmentManager();//getActivity().getSupportFragmentManager();/// getChildFragmentManager();
    SupportMapFragment mapFragment = (SupportMapFragment) fm.findFragmentById(R.id.map);
    if (mapFragment == null) {
        mapFragment = SupportMapFragment.newInstance();
        fm.beginTransaction().replace(R.id.container, mapFragment).commit();
    }
    mapFragment.getMapAsync(this);
}

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    mMap.getUiSettings().setScrollGesturesEnabled(false);
    mMap.getUiSettings().setZoomGesturesEnabled(false);
    mMap.getUiSettings().setZoomControlsEnabled(false);
    mMap.getUiSettings().setMapToolbarEnabled(false);

    LatLng latLng = new LatLng(LATITUDE,LONGITUDE);
    mMap.addMarker(new MarkerOptions().position(latLng));
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15));
}