I am uploading my application in the Android PlayStore and it is getting rejected because of SMS permission in it, but in my Manifest.xml file, there is no SMS permission added.
After having a conversation with the Google team they said that there is permission available of SMS and I am unable to find it.
Below is the screenshot provided by the Google Team and it has SMS permission in there.
My Manifest file looks like this
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.msonline.android">
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:name=".ApplicationClass"
android:allowBackup="true"
android:icon="#drawable/app_icon"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/MSOAppTheme"
tools:ignore="AllowBackup,GoogleAppIndexingWarning"
tools:replace="android:allowBackup,android:icon,android:label,android:theme">
//Other declarations of Activities
</application>
</manifest>
Any Help is appreciable thanks in Advance.
Edit #1
build.gradle
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 28
defaultConfig {
applicationId "package name"
minSdkVersion 16
targetSdkVersion 28
versionCode 31
versionName "4.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
debuggable false
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
checkReleaseBuilds false
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:recyclerview-v7:28.0.0'
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation('com.crashlytics.sdk.android:crashlytics:2.7.1#aar') {
transitive = true
}
implementation 'pub.devrel:easypermissions:1.3.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1'
implementation 'com.onesignal:OneSignal:3.10.3'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.firebase:firebase-config:16.4.1'
implementation "com.google.firebase:firebase-core:16.0.8"
implementation 'com.facebook.fresco:fresco:1.7.1'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation('com.payumoney.sdkui:plug-n-play:1.0.0') {
transitive = true;
exclude module: 'payumoney-sdk'
}
implementation 'com.payumoney.core:payumoney-sdk:7.1.0'
// implementation 'com.google.android.gms:play-services-ads:17.1.1'
implementation 'com.google.android.gms:play-services-ads:17.2.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation project(':libraryMobilePaymentSDKLive')
}
apply plugin: 'com.google.gms.google-services'
Manifest of Lib added
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.atom.library_mobilepaymentsdk"
android:versionCode="3"
android:versionName="3.3" >
<application
android:allowBackup="true"
android:icon="#drawable/process"
android:label="atom payment SDK"
android:theme="#android:style/Theme.Holo.Light" >
</application>
Third party libraries also contribute to your permission tree. In your case the below library that you are using is having RECEIVE_SMS declared in manifest.
com.payumoney.sdkui:plug-n-play:1.0.0
You can check the sdk manifest from sdk's git repo using below this link.
There is RECEIVE_SMS defined in manifest.
<uses-permission
android:name="android.permission.RECEIVE_SMS"
android:protectionLevel="signature" />
What you can try to do is to remove this permission, first declare in your manifest tools:node="remove" then add
<uses-permission android:name="android.permission.RECEIVE_SMS" tools:node="remove" />
The final merged manifest will not have RECEIVE_SMS
Surely you are using a third party library that add this permission.
What you can try to do is to remove this permission, first declare in your manifest tools:node="remove" then add
<uses-permission android:name="android.permission.RECEIVE_SMS" tools:node="remove" />
The final merged manifest will not have RECEIVE_SMS
Related
I'm new this Android world, and I'm facing a very peculiar issue these days and hence wanted to share with you. Please guide me if you know the solution.
I've installed and configured wampserver (mysql, php, apache) in remote Azure VM and I've opened all the ports for access. Please see the pics for Inbound and Outbound access.
Now the issue is: When I installed app in mobile (debug mode) through android studio and data cable, then it can both insert and fetch/download data from remote mysql db (through all php api scripts)… that means no issues in my app, php code, azure vm setup and access to it.
But when I published the same app in playstore and downloaded from there and installed in my same mobile, then its not able to fetch data, however it can insert data only into same mysql db. While fetching all php-apis are returning only null values, because of which all my recycler views are showing in mobile but with no data.
Anything should I take care in permission or in manifest file or where im missing ? please let me know if you know the answer. Thank you very much all in advance.
FYI, manifest file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:dataExtractionRules="#xml/data_extraction_rules"
android:fullBackupContent="#xml/backup_rules"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:preserveLegacyExternalStorage="true"
android:requestLegacyExternalStorage="true"
android:roundIcon="#mipmap/ic_launcher"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
tools:targetApi="31">
build.gradle file:
plugins {
id 'com.android.application'
id 'com.google.gms.google-services'
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
}
android {
namespace 'com.project.localshop'
compileSdk 33
defaultConfig {
applicationId "com.project.localshop"
minSdk 21
targetSdk 33
versionCode 5
versionName "3.2.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
viewBinding true
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.annotation:annotation:1.5.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
implementation 'com.google.firebase:firebase-auth:21.1.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.github.bumptech.glide:glide:4.14.2'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
implementation 'com.github.smarteist:autoimageslider:1.4.0'
implementation 'com.etebarian:meow-bottom-navigation-java:1.2.0'
implementation "androidx.viewpager2:viewpager2:1.0.0"
implementation "com.google.code.gson:gson:2.8.6"
implementation 'com.google.android.material:material:1.9.0-alpha01'
implementation 'com.karumi:dexter:6.2.3'
implementation 'com.google.android.gms:play-services-maps:18.1.0'
implementation 'com.google.android.gms:play-services-location:21.0.1'
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
//noinspection GradleCompatible
implementation 'com.android.support:design:27.1.0'
implementation "com.airbnb.android:lottie:5.2.0"
implementation 'de.hdodenhof:circleimageview:3.1.0'
implementation 'com.sothree.slidinguppanel:library:3.4.0'
implementation 'com.android.volley:volley:1.2.1'
implementation 'androidx.browser:browser:1.5.0'
//implementation 'com.cashfree.pg:android-sdk:1.7.28'
implementation platform('com.google.firebase:firebase-bom:31.2.2')
implementation 'com.google.firebase:firebase-analytics'
}
looks like all xml files AndroidManifest.xml and res xml files have errors, like "URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)" and "Attribute android: is not allowed here" errors.
For example this is my manifest file:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<permission
android:name="spartons.com.javadriverapp.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme"
tools:replace="android:appComponentFactory"
tools:ignore="GoogleAppIndexingWarning">
<activity android:name=".MainActivity"
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.geo.API_KEY"
android:value="#string/map_api_key"/>
</application>
xmlns:android and xmlns:tool tags have URI errors and most of android tags have attribute is not allowed.
This is my app build.graddle:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 28
defaultConfig {
applicationId "spartons.com.javadriverapp"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:animated-vector-drawable:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation "com.google.android.gms:play-services-location:16.0.0"
implementation 'com.google.firebase:firebase-database:16.0.5'
implementation 'com.google.firebase:firebase-analytics:17.2.2'
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
apply plugin: 'com.google.gms.google-services'
What could be the problem?
you need to add the schema of tools and android attributes in the top or parent layout of the xml
like this
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
and if its already there still getting error then click ALT + ENTER on the first line of the layout
Apparently the mirror project files of symbolic link have all the errors whereas the originals don't
The originals files are under /mnt whereas ~/ holds its symbolic mirror. The pictures shows AndroidManifest.xml with errors and one of them has "uri not registerd" error
I got an email that my android app is removed by google:
in that its mentioned that:
Alternatively, you may opt-out of this requirement by removing any requests for sensitive permissions or user data.
I have the following permissions in Android Manifest.
<uses-permission android:name="android.permission.INTERNET" /> <!-- is required for volley -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
and the following is my android build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
applicationId "xxxxx.yyyyyy"
minSdkVersion 17
targetSdkVersion 26
versionCode 3
versionName "1.2"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'jp.wasabeef:glide-transformations:2.0.1'
compile 'com.google.firebase:firebase-messaging:11.8.0'
compile 'com.android.support:design:26.1.0'
compile 'com.borjabravo:readmoretextview:2.0.1'
compile 'com.android.support:cardview-v7:26.1.0'
}
apply plugin: 'com.google.gms.google-services'
Which are the permission or lib that are causing the privacy problem
Quoting Android Runtime Permissions
The Dangerous permissions are the permissions which give application access to the user’s private data or affect the system/other apps. If you list a dangerous permission in manifest then the user has to explicitly give permission to your application.
If you take a look at that list you can see that com.google.android.providers.gsf.permission.READ_GSERVICES is a dangerous permission, that causes the violation.
EDIT: If you have that permission because you use Google Maps, you can safely remove it as it is not required anymore.
My app is not visible on any mobile device. Installs with no problem from the APK file, works good, but for some reason, Google Play doesn't list it.
When I look at google play of the computer the error is: This app is not compatible with your device.
When I look at Google Play Console - device catalog, the compatible devices is 0.
Any suggestions for this?
The app's manifest:
<?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="br.com.tecmafandroid.projeto.tecmaf">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature
android:name="android.hardware.camera2"
android:required="true" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_tecmaf"
android:roundIcon="#mipmap/ic_tecmaf_round"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
...
</application>
</manifest>
build.gradle(app):
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "br.com.XXXandroid.projeto.XXX"
minSdkVersion 15
targetSdkVersion 27
versionCode 2 subindo novas versões
versionName "1.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
//dependencias firebase
//noinspection GradleCompatible
implementation 'com.google.firebase:firebase-core:11.8.0'
implementation 'com.google.firebase:firebase-database:11.8.0'
implementation 'com.google.firebase:firebase-storage:11.8.0'
implementation 'com.google.firebase:firebase-auth:11.8.0'
implementation 'com.firebaseui:firebase-ui-storage:0.6.0'
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:support-v4:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.github.rtoshiro.mflibrary:mflibrary:1.0.0'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
implementation 'com.github.jd-alexander:LikeButton:0.2.3'
}
apply plugin: 'com.google.gms.google-services'
<uses-feature
android:name="android.hardware.camera2"
android:required="true" />
It will be listed for device which only has Camera 2
In order to list for all devices,
make the android:required = "false" and handle for the devices which doesnt have Camera 2.
Please help me. I dont know why, when I trying to upload the apk from version code 21 to 22 and version Name from 305 to 306.. playstore showing me detail zero device supported. this is my AndroidManifest.xml.
<?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.android.studio"
android:installLocation="auto"
android:versionCode="22"
android:versionName="3.0.6">
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="25" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!---->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!---->
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.Manifest.permission.ACCESS_NETWORK_STATE" />
<application
android:name=".SplashScreen"
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:largeHeap="true">
<!--
The API key for Google Maps-based APIs is defined as a string resource.
(See the file "res/values/google_maps_api.xml").
Note that the API key is linked to the encryption key used to sign the APK.
You need a different API key for each encryption key, including the release key that is used to
sign the APK for publishing.
You can define the keys for the debug and release targets in src/debug/ and src/release/.
-->
<activity
android:name=".SplashScreen"
android:configChanges="keyboardHidden"
android:screenOrientation="portrait"
android:theme="#style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Tutorial"
android:configChanges="keyboardHidden"
android:noHistory="true"
android:screenOrientation="portrait"
android:theme="#style/AppTheme"
android:windowSoftInputMode="adjustPan|stateHidden" />
</application>
this is my build.gradle (project)
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
useLibrary 'org.apache.http.legacy'
compileOptions.encoding = 'ISO-8859-1'
defaultConfig {
applicationId "com.android.studio"
minSdkVersion 11
targetSdkVersion 25
multiDexEnabled true
renderscriptTargetApi 25
renderscriptSupportModeEnabled true
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
packagingOptions {
}
dexOptions {
javaMaxHeapSize "4g"
}
aaptOptions {
cruncherEnabled = false
}
}dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile('com.android.support:support-v4:21.0.3') {
exclude group: 'com.android.support', module: 'support-v4'
}
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:percent:25.1.0'
compile 'com.jakewharton:butterknife:8.2.1'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
compile 'com.karumi:dexter:2.3.1'
compile 'com.github.siyamed:android-shape-imageview:0.9.+#aar'
compile 'com.google.android.gms:play-services-auth:9.4.0'
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-auth:9.4.0'// dif
compile 'com.google.firebase:firebase-messaging:9.4.0'// dif
compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.android.support:design:25.1.0'
compile 'com.android.support:cardview-v7:25.1.0'
compile 'com.github.chrisbanes:PhotoView:1.2.6'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.adeel:easyFTP:1.0'
compile 'com.android.support:exifinterface:25.1.0'
compile 'net.gotev:uploadservice:2.1'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'com.android.support:support-v4:25.1.0'
compile 'com.squareup.picasso:picasso:2.4.0'
compile 'com.google.android.gms:play-services-location:9.4.0'
compile 'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.0.4'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
apt 'com.jakewharton:butterknife-compiler:8.2.1'
compile 'com.google.android.gms:play-services:9.4.0'
}
apply plugin: 'com.google.gms.google-services'
this is my build.gradle (module:app)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'com.google.gms:google-services:3.0.0'
}} allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io"}
}}
It is a bug in google play store you can upload the APK it will be visible for all the devices according to your configuration.
Refer my answer at
APK 0 Device Compatibility