1

So I have uploaded my application to google play, the problem is it's only supporting 800 devices out of 13k devices.

I've checked target API and its not the problem. does it have anything to do with using NDK in my app ? or is it because I'm using openGL in animating some screens ?

please I need your help and suggestions on this .

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<uses-feature
    android:name="android.hardware.camera"
    android:required="true" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.audio.low_latency" />

<application
    android:name=".Application"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:screenOrientation="portrait"
    android:supportsRtl="false"
    android:theme="@style/AppTheme">

    <meta-data
        android:name="io.fabric.ApiKey"
        android:value="YOUR_API_KEY" />

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />

    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name" />
    <activity
        android:name="com.facebook.CustomTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="@string/fb_login_protocol_scheme" />
        </intent-filter>
    </activity>


    <activity
        android:name=".modules.main.SplashActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/FullScreenTheme">

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

    </activity>


</application>

and this is the CPU types I'm supporting

    android.ndk {
    moduleName = "le_sw_soundeffects_example"
    ldLibs.addAll(["android", "atomic", "log", "OpenSLES"]) // armeabi builds
    cppFlags.addAll(["-std=c++14", "-fvisibility=hidden", "-Wall", "-Wno-multichar", "-Wno-non-template-friend", "-Wno-unused-local-typedefs", "-Wno-unknown-warning-option"])
    cppFlags.add("-I${le_sdk_path}/include".toString())
    toolchain = 'gcc'
    stl = 'gnustl_static'
   abiFilters.addAll(["x86_64", "x86", "arm64-v8a", "armeabi-v7a"])
}
Ran
  • 145
  • 2
  • 11
  • Please add your Android manifest file to your question. As well as what CPU types you are supporting with the NDK (armabi, x86, etc.) – Morrison Chang Aug 14 '17 at 05:50
  • @MorrisonChang here is my manifest and what CPU types , and thank you so much for your help – Ran Aug 14 '17 at 05:57

1 Answers1

1

You are using android.hardware.audio.low_latency which has been around since Android 4.1 but is still listed in the Android Compatibility Definition Document for Android 7.1 Section 5.6 Audio Latency as STRONGLY RECOMMENDED but not MUST.

My guess is that all of those 800 devices which do work are relatively mid to high end. All of those not compatible devices ended up with cheaper parts and/or the manufacturer didn't go through the expense of testing.

If your app doesn't have a hard requirement on low latency audio you could made it optional by adding android:required="false" to your feature request:

<uses-feature android:name="android.hardware.audio.low_latency" android:required="false"/>

Additional link on low latency audio: https://stackoverflow.com/a/15301628/295004

Additional note I realize that you didn't include your min/target SDK. Please check that as well.

Morrison Chang
  • 11,691
  • 3
  • 41
  • 77
  • shall I include min/target SDK in the manifest as well ? i have it in gradle min is 17 and target is 23.... and you know what freaks me out ? is that the app was working on my samsung device while testing , but not anymore when its on the play store . is it normal ? – Ran Aug 14 '17 at 06:40
  • Hmm. I would add your gradle min/target to your question as well as any difference in development build vs release build. I would uninstall any dev build from a phone before I download a release build (just to make sure). I would unzip your release build apk to make sure it has all of the components of your development build apk. I would also list out how many different devices you tested on. Also include any logs if possible. – Morrison Chang Aug 14 '17 at 06:50