简体   繁体   中英

Android permission WRITE EXTERNAL STORAGE doesn't work even if I have declared it

My Targeted SDK is 22! When I try to write external storage a toast is shown says:

java.lang.SecurityExeption: need WRITE_EXTERNAL_STORAGE permission to use DESTINATION_FILE_URI: uid 10504 does not have android.permission.WITE_EXTERNAL_STORAGE

This is the Error:

错误

Can Anyone help?

MY AndroidMainfest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.CowLabel">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/>
    <uses-permission android:name="com.android.vending.BILLING"/>
    <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>


    <application
        android:hardwareAccelerated="true"
        android:allowBackup="true"
        android:icon="@drawable/Cows"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:name="CowLabel.util.MyApplication"
        android:theme="@style/Mytheme">


        <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />


        <activity android:name="CowLabel.WelcomeActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        </activity>
        <activity android:name="CowLAbel.Purchase_activity"/>

        <service
            android:name="CowLabel.accessibilityservice"

            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
            android:label="Cow Label" >
            <intent-filter>
                <action android:name="android.accessibilityservice.AccessibilityService" />
            </intent-filter>

            <meta-data
                android:name="android.accessibilityservice"
                android:resource="@xml/accessibility_service_config" />

        </service>

        <activity
            android:name="com.CowLabel.MainActivity"></activity>

        <receiver android:name="com.CowLabel.Notification_reciever"/>















        </application>








</manifest>

My Gradle File:

apply plugin: 'com.android.application'


android {
    compileSdkVersion 25
    buildToolsVersion "24.0.3"

    defaultConfig {
        applicationId "com.CowLabel"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 11
        versionName "2.3"
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


}

repositories {

    maven {
        name "Fyber's maven repo"
        url "https://fyber.bintray.com/maven"
    }
    flatDir {
        dirs "libs"
    }

}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'org.jsoup:jsoup:1.9.2'
    compile 'com.mcxiaoke.volley:library:1.0.19'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.android.gms:play-services-ads:10.0.1'
    compile 'com.anjlab.android.iab.v3:library:1.0.+'
    compile 'com.google.firebase:firebase-core:10.0.1'
    compile 'com.google.firebase:firebase-database:10.0.1'
    compile 'com.google.firebase:firebase-ads:10.0.1'
    compile 'com.google.firebase:firebase-appindexing:10.0.1'
    compile 'com.google.firebase:firebase-config:10.0.1'
    compile 'com.google.firebase:firebase-messaging:10.0.1'
    compile 'com.google.firebase:firebase-crash:10.0.1'



    compile(name:'heyzap-unified-platform-10.2.2', ext:'aar')
    //adcolony
    compile 'com.fyber.mediation:adcolony:2.3.6-r2@aar'

    //inmobi
    compile 'com.fyber.mediation:inmobi:6.0.0-r3@aar'
    compile 'com.squareup.picasso:picasso:2.5.2'

    //tapjoy
    compile 'com.fyber.mediation:tapjoy:11.8.1-r1@aar'

    //unityads
    compile 'com.fyber.mediation:unityads:2.0.5-r1@aar'

    //vungle
    compile 'com.google.dagger:dagger:2.4'
    compile 'javax.inject:javax.inject:1'

    // IMPORTANT!
// The latest Vungle adapter is not currently published to Fyber's maven repository.
// Please follow the "Eclipse Users" instructions to download the Vungle adapter and add the `aar` file to your project's `libs` folder
    compile (name: 'fyber-vungle-4.0.3-r1', ext: 'aar')

}
apply plugin: 'com.google.gms.google-services'

I think need Fyber.init();

Fyber sdk is seem to change permission

You can try to analyze apk file from android studio. Check AndroidManifest.xml, see which uses-permission's placed there.

您必须检查自己的库,因为有一个库阻止了您的许可,所以您应该使用“ tools:replace =“ maxSdkVersion” android:maxSdkVersion =“ 27”强制执行该许可。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM