谷歌地图api要求权限,即使我已经指定了它们

时间:2015-02-22 22:26:30

标签: android google-maps google-play-services

我的清单的应用标签:

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MapActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

    <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="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>

    <permission android:name="petrifiednightmares.stationwake.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"></permission>

    <uses-permission android:name="petrifiednightmares.stationwake.permission.MAPS_RECEIVE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>
</application>

错误:

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.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    at com.google.maps.api.android.lib6.c.ck.a(Unknown Source)
    at com.google.maps.api.android.lib6.c.i.a(Unknown Source)
    at com.google.maps.api.android.lib6.c.el.a(Unknown Source)
    at com.google.maps.api.android.lib6.c.ab.a(Unknown Source)
    at com.google.maps.api.android.lib6.c.aa.a(Unknown Source)
    at com.google.android.gms.maps.internal.x.onTransact(SourceFile:107)
    at android.os.Binder.transact(Binder.java:380)
    at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onCreateView(Unknown Source)
    at com.google.android.gms.maps.MapFragment$a.onCreateView(Unknown Source)
    at com.google.android.gms.dynamic.a$4.b(Unknown Source)
    at com.google.android.gms.dynamic.a.a(Unknown Source)
    at com.google.android.gms.dynamic.a.onCreateView(Unknown Source)
    at com.google.android.gms.maps.MapFragment.onCreateView(Unknown Source)
    at android.app.Fragment.performCreateView(Fragment.java:2053)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:870)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1045)
    at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1147)
    at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2116)
    at android.app.Activity.onCreateView(Activity.java:5282)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
    ... 19 more

1 个答案:

答案 0 :(得分:1)

<uses-permission><uses-feature><permission>元素移出<application>。他们需要成为<manifest>的{​​{1}}和同伴的直接子女。<application>