jeudi 13 août 2015

Permission issue on MNC with Google Maps

I have created a minimal example that demos the problem in this question

http://ift.tt/1h6TGnE

I ran into this issue in a real app, but created this project to demo the minimal example.

The project was created with Android Studio 1.3.1

It was a "Google Maps Activity" project targeting MNC.

The only change I made was changing

compile 'com.android.support:appcompat-v7:23.+'

to

compile 'com.android.support:appcompat-v7:22.+'

as 23.+ doesn't seem to exist yet... (not sure why it's used by the project creation wizard)

On start up this exception is seen.

 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

as you can see in the manifest:

http://ift.tt/1J2MyhL

The permission in question is there.

The emulator is running the latest version of M.

Is there something I am missing to get maps to play nice in M? Like ask for the permission before I inflate the layout containing the map? Or am I just jumping the gun and I need to wait a bit longer for all of this to be ready for testing?

That seems like an annoying limitation to have to ask for the storage permission at startup for apps built around the map.

UPDATE: there is now a branch of the project that works.. here is the diff: http://ift.tt/1L9JWWj



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire