我的应用程序中有一个正在运行的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密钥,我正在编译调试版本。 谢谢你们所有人:)
答案 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));
}