Android Question Uploading to Google Play tells me 0 Devices will be able to see my app

lorebarita

Member
Licensed User
Longtime User
Hi,
I have uploaded my app on Google play but after clicking on the activate link, i see that 0 devices will be able to see my app. Please help. Here is my manifest...

AddManifestText(
<uses-sdk android:minSdkVersion="4"/>
<supports-screens android:largeScreens="true"
android:xlargeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
SetApplicationAttribute(android:theme, "@android:style/Theme.Holo.Light")
AddManifestText( <permission
android:name="$PACKAGE$.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>)
AddManifestText(<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-feature android:name="android.hardware.BLUETOOTH" android:required="false"/>
<uses-feature android:name="android.hardware.LOCATION"/>
<uses-feature android:name="android.hardware.location.GPS" android:required="false"/>
<uses-feature android:name="android.hardware.location.NETWORK"/>
<uses-feature android:name="android.hardware.MICROPHONE"/>
<uses-feature android:name="android.hardware.screen.PORTRAIT"/>
<uses-feature android:name="android.hardware.TOUCHSCREEN"/>)

AddApplicationText(<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCmD8nh0myu0xXl3Jo5kv5pYKqJu2LKIeI"/>)

AddApplicationText(<activity android:name="nfcdriveractivity">
<intent-filter>
<action android:name="com.etc.utils.nfc.nfcdriveractivity" />
</intent-filter>
</activity>)
AddPermission(android.permission.ACCESS_COARSE_LOCATION)
AddPermission(android.permission.ACCESS_FINE_LOCATION)
AddPermission(android.permission.BLUETOOTH)
AddPermission(android.permission.BLUETOOTH_ADMIN)
AddPermission(android.permission.CAMERA)
AddPermission(android.permission.INTERNET)
AddPermission(android.permission.MODIFY_AUDIO_SETTINGS)
AddPermission(android.permission.NFC)
AddPermission(android.permission.READ_EXTERNAL_STORAGE)
AddPermission(android.permission.READ_PHONE_STATE)
AddPermission(android.permission.RECORD_AUDIO)
AddPermission(android.permission.SEND_SMS)
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)

'End of default text.
 

eps

Expert
Licensed User
Longtime User
I would remove all of the android:required="false" statements in there, these mean that your App isn't appearing.

HTH

What is this for? uses-feature android:glEsVersion="0x00020000" android:required="true"

That seems quite specific to me... I guess it's to do with graphics, but you need to ensure that this is correct, if it's not correct then no devices will be found...

Did you edit the manifest by hand? In an ideal world most of this will be completed automatically by B4A as you use Libraries or Classes that require those features.
 
Upvote 0

warwound

Expert
Licensed User
Longtime User
Looks like you have some entries that used to be required in order to use the GoogleMaps library.
Take a look at this page: https://developers.google.com/maps/documentation/android/releases.

Feb & May 2013 - OpenGL ES 2.0 feature requirement is no longer required to be included in AndroidManifest. Note: OpenGL ES 2.0 is still required for Maps to function.

July 2013 - The MAPS_RECEIVE permission is no longer required. You can remove this permission from your manifest.

I'll post the same info in the Google Maps Android v2 tutorial as it doesn't seem to have been mentioned so far.

Martin.
 
Upvote 0

lorebarita

Member
Licensed User
Longtime User
I have put the changes but still the same response. Here is my new manifest...
AddManifestText(
<uses-sdk android:minSdkVersion="4"/>
<supports-screens android:largeScreens="true"
android:xlargeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
SetApplicationAttribute(android:theme, "@android:style/Theme.Holo.Light")
AddManifestText(<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-feature android:name="android.hardware.telephony"/>
<uses-feature android:name="android.hardware.camera.front"/>
<uses-feature android:name="android.hardware.bluetooth"/>
<uses-feature android:name="android.hardware.location"/>
<uses-feature android:name="android.hardware.location.gps"/>
<uses-feature android:name="android.hardware.location.network"/>
<uses-feature android:name="android.hardware.microphone"/>
<uses-feature android:name="android.hardware.screen.portrait"/>
<uses-feature android:name="android.hardware.touchscreen"/>)

AddApplicationText(<activity android:name="nfcdriveractivity">
<intent-filter>
<action android:name="com.etc.utils.nfc.nfcdriveractivity" />
</intent-filter>
</activity>)
AddPermission(android.permission.ACCESS_COARSE_LOCATION)
AddPermission(android.permission.ACCESS_FINE_LOCATION)
AddPermission(android.permission.BLUETOOTH)
AddPermission(android.permission.BLUETOOTH_ADMIN)
AddPermission(android.permission.CAMERA)
AddPermission(android.permission.INTERNET)
AddPermission(android.permission.MODIFY_AUDIO_SETTINGS)
AddPermission(android.permission.NFC)
AddPermission(android.permission.READ_EXTERNAL_STORAGE)
AddPermission(android.permission.READ_PHONE_STATE)
AddPermission(android.permission.RECORD_AUDIO)
AddPermission(android.permission.SEND_SMS)
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)
'End of default text.
 
Upvote 0

eps

Expert
Licensed User
Longtime User
Sorry, I mean you should remove the whole line, where you've got permission = false

e.g.

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

just remove it, instead of removing the required="false" part...

I would look at the android.permission.XXXXXXXX you have in there, it may well be that they should be in lower case.

You seem to be editing this manually, I would save what you have to one side and allow B4A to update the Manifest, so that it adds the permissions. If you really need to add extra items in, manually, then do so on top of the ones identified by the Compiler. Having too many permissions will turn Users off installing your App. Less is more.
 
Upvote 0

eps

Expert
Licensed User
Longtime User
i.e. but check the case of the items...

B4X:
AddManifestText(
<uses-sdk android:minSdkVersion="4"/>
<supports-screens android:largeScreens="true"
android:xlargeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
SetApplicationAttribute(android:theme, "@android:style/Theme.Holo.Light")
AddManifestText(<uses-feature android:name="android.hardware.location"/>
<uses-feature android:name="android.hardware.location.network"/>
<uses-feature android:name="android.hardware.microphone"/>
<uses-feature android:name="android.hardware.screen.portrait"/>
<uses-feature android:name="android.hardware.touchscreen"/>)

AddApplicationText(<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YourKey - but should probaby be removed from posts"/>)

AddApplicationText(<activity android:name="nfcdriveractivity">
<intent-filter>
<action android:name="com.etc.utils.nfc.nfcdriveractivity" />
</intent-filter>
</activity>)
AddPermission(android.permission.ACCESS_COARSE_LOCATION)
AddPermission(android.permission.ACCESS_FINE_LOCATION)
AddPermission(android.permission.BLUETOOTH)
AddPermission(android.permission.BLUETOOTH_ADMIN)
AddPermission(android.permission.CAMERA)
AddPermission(android.permission.INTERNET)
AddPermission(android.permission.MODIFY_AUDIO_SETTINGS)
AddPermission(android.permission.NFC)
AddPermission(android.permission.READ_EXTERNAL_STORAGE)
AddPermission(android.permission.READ_PHONE_STATE)
AddPermission(android.permission.RECORD_AUDIO)
AddPermission(android.permission.SEND_SMS)
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)

'End of default text.
 
Upvote 0

lorebarita

Member
Licensed User
Longtime User
See attached... I have changed the extension as xml is not allowed...
Thanks.
 

Attachments

  • AndroidManifest.txt
    14.6 KB · Views: 317
Upvote 0

lorebarita

Member
Licensed User
Longtime User
I have done and this is what the manifest.xml looks like now but still 0 devices compatible:

'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: http://www.b4x.com/forum/showthread.php?p=78136
AddManifestText(
<uses-sdk android:minSdkVersion="4"/>
<supports-screens android:largeScreens="true"
android:xlargeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
SetApplicationAttribute(android:theme, "@android:style/Theme.Holo.Light")
AddApplicationText(<activity android:name="nfcdriveractivity">
<intent-filter>
<action android:name="com.etc.utils.nfc.nfcdriveractivity" />
</intent-filter>
</activity>)
AddPermission(android.permission.ACCESS_COARSE_LOCATION)
AddPermission(android.permission.ACCESS_FINE_LOCATION)
AddPermission(android.permission.BLUETOOTH)
AddPermission(android.permission.BLUETOOTH_ADMIN)
AddPermission(android.permission.CAMERA)
AddPermission(android.permission.INTERNET)
AddPermission(android.permission.MODIFY_AUDIO_SETTINGS)
AddPermission(android.permission.NFC)
AddPermission(android.permission.READ_EXTERNAL_STORAGE)
AddPermission(android.permission.READ_PHONE_STATE)
AddPermission(android.permission.RECORD_AUDIO)
AddPermission(android.permission.SEND_SMS)
AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)
'End of default text.
 
Upvote 0

eps

Expert
Licensed User
Longtime User
That isn't what the manifest file looks like, it's got a whole host of other stuff included on top. You should make a copy of it and then remove some of it, to see what makes a difference.
 
Upvote 0

lorebarita

Member
Licensed User
Longtime User
As I understood I can only make changes from the Manifest Editor. If I try to make manually a change in the Manifest.xml it will anyway put back the lines I have removed (the Add Permission).
So I have removed them from the Editor but makes no difference. The same apk works perfectly on any device if uploaded not via google play.
 
Upvote 0

eps

Expert
Licensed User
Longtime User
As I understood I can only make changes from the Manifest Editor. If I try to make manually a change in the Manifest.xml it will anyway put back the lines I have removed (the Add Permission).
So I have removed them from the Editor but makes no difference. The same apk works perfectly on any device if uploaded not via google play.

If you look in your manifest file - as posted, apart from the requirements, which have now been removed, there are a lot of other entries in tehre, which are to do with payment systems... These seem to be duplicated a lot - how did/do they get in the manifest file?
 
Upvote 0

lorebarita

Member
Licensed User
Longtime User
thank you for the help... am not sure how they got there but for sure we did not manually enter them into the manifest file.
 
Upvote 0
Top