普通だったら、AndroidManifest.xmlに
1 2 |
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> |
こんなの書きますよね。
でも、ここで追加してないはずなのに、いくつか勝手にPermissionが追加されてたりした。
原因はけっこうすぐわかりました。
targetSdkVersion古い
実はtargetSdkVersionが古いといくつかpermissionが勝手に追加されます。
Google Play detecting new permissions after using Android Studio
私は具体的には
1 2 3 4 5 |
android.permission.ACCESS_COARSE_LOCATION android.permission.GET_ACCOUNTS android.permission.READ_EXTERNAL_STORAGE maxSdkVersion=18 android.permission.USE_CREDENTIALS android.permission.WRITE_EXTERNAL_STORAGE |
ここらへんが勝手に追加されてました。
でも、targetSdkVersion 21で古くなかったです。
じゃあなんで?
※ちなみにAndroid Studioの人はbuild.gradle、eclipseの人はAndroidManifest.xml見てね。
LibraryのtargetSdkVersionが古い
ここまで見ないと解決しない人は、なんかLibraryを使っていて、さらにそれがちょっと古いか、頑張って昔まで対応しているやつだと思われる。
私の場合、numberprogressbar ってやつを使ってた。
これが古かったのだ。
AndroidManifest.xmlで上書き
1 2 3 4 5 |
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="remove" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" tools:node="remove" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" /> |
※ない人はこれも加えます
1 |
xmlns:tools="http://schemas.android.com/tools" |
こんな感じで書いてやれば、上書きしてPermissionを無効にすることができます。
unrequested permissions not declared in androidmanifest--crashlytics maybe?
なんかスッキリしないけど、こんな感じ。