我创建了一个最小示例来演示这个问题中的问题
https://github.com/dbachelder/MNCMapTest
我在一个真实的应用程序中遇到了这个问题,但是创建了这个项目来演示最小的例子。
该项目是使用 Android Studio 1.3.1 创建的
这是一个针对跨国公司的“谷歌地图活动”项目。
我所做的唯一改变就是改变
compile 'com.android.support:appcompat-v7:23.+'
到
compile 'com.android.support:appcompat-v7:22.+'
因为 23.+ 似乎还不存在......(不确定为什么项目创建向导使用它)
在启动时会看到此异常。
Caused by: java.lang.SecurityException: The Maps API requires the additional following permissions to be set in the AndroidManifest.xml to ensure a correct behavior:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
at com.google.maps.api.android.lib6.d.t.a(Unknown Source)
at com.google.maps.api.android.lib6.d.ft.a(Unknown Source)
at com.google.maps.api.android.lib6.d.aj.a(Unknown Source)
at com.google.maps.api.android.lib6.d.ai.a(Unknown Source)
at com.google.android.gms.maps.internal.x.onTransact(SourceFile:107)
at android.os.Binder.transact(Binder.java:387)
at com.google.android.gms.maps.internal.IMapFragmentDelegate$zza$zza.onCreateView(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$zza.onCreateView(Unknown Source)
at com.google.android.gms.dynamic.zza$4.zzb(Unknown Source)
at com.google.android.gms.dynamic.zza.zza(Unknown Source)
at com.google.android.gms.dynamic.zza.onCreateView(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:924)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1116)
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1218)
at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2170)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:300)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
... 19 more
正如您在清单中看到的:
https://github.com/dbachelder/MNCMapTest/blob/master/app/src/main/AndroidManifest.xml
有问题的许可在那里。
模拟器正在运行最新版本的 M。
为了让地图在 M 中发挥出色,我有什么遗漏吗?就像在我膨胀包含地图的布局之前请求许可?还是我只是匆匆忙忙,我需要等待更长的时间才能让所有这些都准备好进行测试?
这似乎是一个令人讨厌的限制,必须在启动时为围绕地图构建的应用程序请求存储权限。
更新:现在有一个项目的分支可以工作..这里是差异: https ://github.com/dbachelder/MNCMapTest/pull/1/files