Den*_*ski 3 android google-maps
我已经阅读了所有类似的问题并完成了其中描述的所有内容,但没有帮助.
Google Maps API v2已启用且API密钥正确无误
我刚刚在"新项目"中选择了GoogleMapsActivity,然后创建了一个key.jks,通过keytool创建了sha1,创建了公共api访问密钥,将我的API密钥放入了清单.
我试过:clean-rebuild-unistall app-install
多次更新api密钥
用new key.jks创建一个新项目(并且一遍又一遍)
删除并创建api密钥
这是我的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dandewine.user.thinkmobiletest" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!--
Run Code Online (Sandbox Code Playgroud)
使用Google Maps Android API v2不需要ACCESS_COARSE/FINE_LOCATION权限,但建议使用这些权限. - >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIza**************************" />
<activity
android:name=".ActivityMain"
android:label="@string/title_activity_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
这是我的活动:
public class ActivityMain extends FragmentActivity implements OnMapReadyCallback {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_map);
SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.addMarker(new MarkerOptions()
.position(new LatLng(0, 0))
.title("Marker"));
}
Run Code Online (Sandbox Code Playgroud)
logcat的:
E/Google Maps Android API? Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.
07-27 14:52:37.551 25002-25035/com.dandewine.user.thinkmobiletest E/Google Maps Android API? In the Google Developer Console (https://console.developers.google.com)
Ensure that the "Google Maps Android API v2" is enabled.
Ensure that the following Android Key exists:
API Key: AIza****************************
Android Application (<cert_fingerprint>;<package_name>): 8C:2B:4C:F7:CF:FB:EC:D5:DC:D7:D0:5D:6E:30:49:74:97:18:57:88;com.dandewine.user.thinkmobiletest
Run Code Online (Sandbox Code Playgroud)
更新:我在谷歌开发中有不同的SHA1指纹.控制台和日志,如何处理?
任何人都可以提供建议.
Dan*_*ent 11
听起来您正在使用密钥库中的SHA1指纹来生成签名的apk.
要从Android Studio调试/运行,您需要使用Android Studio用于签署apk的SHA1指纹.
请注意,您可以使用命令行获取此SHA1指纹:
对于Mac或Linux:
keytool -list -v -keystore ~/.android/debug.keystore
Run Code Online (Sandbox Code Playgroud)
对于Windows:
keytool -list -v -keystore C:\User\YourUser\.android\debug.keystore
Run Code Online (Sandbox Code Playgroud)
用密码"android".
但是,由于您的日志中已经有正确的值,只需从日志中复制它(我在此修改它,不要从这里复制):
8C:2B:4C:F7:CF:FB:EC:D5:DC:D7:D0:5D:6E:30:49:xx:xx:xx:xx:xx;com.dandewine.user.thinkmobiletest
Run Code Online (Sandbox Code Playgroud)
并将其粘贴到开发人员控制台中的API密钥中.
您可以为每个API密钥添加多个指纹/包值,每行一个(您还可以在编辑API密钥时在说明中看到).
您还可以为调试和发布配置不同的API密钥,如果这样做,请查看此答案.
归档时间: |
|
查看次数: |
6260 次 |
最近记录: |