Titanium JIRA Archive
Appcelerator Community (AC)

[AC-4993] Bad compatibility with Android application

GitHub Issuen/a
TypeBug
Priorityn/a
StatusClosed
ResolutionHold
Resolution Date2017-06-29T16:28:38.000+0000
Affected Version/sn/a
Fix Version/sn/a
Componentsn/a
Labelsn/a
Reporterjmarty
AssigneeShak Hossain
Created2017-05-24T14:52:33.000+0000
Updated2017-06-29T16:28:38.000+0000

Description

Hello, When I create an application contains attached tiapp.xml and when I publish on PlayStore, I have no compatibility with some device bellow : samsung g930f samsung gt i8190 samsung t211 sony e6653 But these Smartphone are recent models and I don't know if it come from some configuration I have and I can increase the compatibilities or if it's not possible and why these smartphone are not compatible with my application. Thanks

Attachments

FileDateSize
tiappAppcelerator.xml2017-05-24T14:52:18.000+00007062

Comments

  1. Sharif AbuDarda 2017-05-24

    Hello, Please provide the device Android version. Thanks.
  2. Joshua Quick 2017-05-26

    Can you send us the built/generated "AndroidManifest.xml" file please? You can find this generated file by doing the following:

    Build your project for Android.

    Go to your project folder via "Windows Explorer" or "Finder" on Mac.

    Go to the "./build/android" directory.

    The generated "AndroidManifest.xml" file can be found at this location.

    The "AndroidManifest.xml" will reveal what features your app may be inadvertently requiring. For example, when you add the ACCESS_FINE_LOCATION permission, Google Play will assume that your app requires GPS hardware to function (unless you to tell it otherwise via ) and will prevent devices that don't have a GPS from purchasing/download your app from the Google Play app store. The same is true about the CAMERA permission, where adding it prevents devices that don't have a camera from buying/downloading your app. Now, I'm sure the devices you've listed have these hardware features, but there may be other things listed in your manifest that's preventing them from being supported. So, if your app uses Android permission for features that are NOT required for your app to function (that is, they're optional), then you should also add the tags to your XML file as well... https://developer.android.com/guide/topics/manifest/uses-feature-element.html For example, the following adds permissions for the camera and location services, but indicate that these hardware features are not required.
       <uses-permission android:name="android.permission.CAMERA"/>
       <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
       <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
       <uses-feature android:name="android.hardware.camera" android:required="false"/>
       <uses-feature android:name="android.hardware.location" android:required="false"/>
       <uses-feature android:name="android.hardware.location.gps" android:required="false"/>
       
  3. jmarty 2017-05-29

  4. Joshua Quick 2017-05-30

    Right. So, I recommend that you add the following to your "tiapp.xml" file...
       <?xml version="1.0" encoding="UTF-8"?>
       <ti:app xmlns:ti="http://ti.appcelerator.org">
       	<android xmlns:android="http://schemas.android.com/apk/res/android">
       		<manifest>
       			<!-- Add this if your app does not require a camera to function. -->
       			<uses-feature android:name="android.hardware.camera" android:required="false"/>
       			<uses-feature android:name="android.hardware.camera.any" android:required="false"/>
       
       			<!-- Add this if your app does not require location services to function. -->
       			<uses-feature android:name="android.hardware.location.gps" android:required="false"/>
       			<uses-feature android:name="android.hardware.location.network" android:required="false"/>
       
       			<!-- You should add this. Allows devices without wifi to download your app. -->
       			<uses-feature android:name="android.hardware.wifi" android:required="false"/>
       		</manifest>
       	</android>
       </ti:app>
       
    That said, the above may not help make your app compatible with the phones you've mentioned. The above typically only helps with compatibility with tablets. But I recommend that you do the above anyways (assuming the above features are not required). You should see several devices become compatible after doing the above. Does your AndroidManifest.xml file contain anything else interesting? Such as elements? If you can show me the whole manifest file (if you can), then that would be helpful.
  5. Sharif AbuDarda 2017-06-02

    Hello [~jmarty], Can you get back on the previous comment? thanks.
  6. jmarty 2017-06-06

    Yes I have more compatibilities with this update but I dont know if there is some impact of this change to the not compatible mobile...
  7. Sharif AbuDarda 2017-06-07

    Hello [~jmarty], Does your AndroidManifest.xml file contain anything else interesting? Such as elements? If you can show me the whole manifest file (if you can), then that would be helpful. Thanks.
  8. jmarty 2017-06-09

    My AndroidManifest.xml is link to this jira. I send to Play Store the app with : And I increase my compatibily of my app but I don't know the impact of this update on my application's execution.
  9. Joshua Quick 2017-06-09

    [~jmarty], that specific "glEsVersion" setting, when set to true, would require a device having a GPU that supports OpenGL 2.0 or higher for better graphics/rendering performance. I don't really recommend that you set that to false, because by doing so, you are allowing really low-end old obsolete devices that only support OpenGL 1.x to download your app. I don't think those are the kind of devices you want to support. Google doesn't even measure the number of OpenGL 1.x devices on the market anymore (link below), but I remember it being less than 1% a year ago. https://developer.android.com/about/dashboards/index.html

JSON Source