I have just published my app on google play and found out that none of my testing devices are compatible. Even in the developer consol there is the compatible devices section and under that it says there are 7041 devices and 0 are compatible with my app.
Here is my manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="*********************"
android:versionCode="2"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<uses-feature android:glEsVersion="2" android:required="true" android:name="GLES2.0"/>
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="#android:style/Theme.Translucent" />
<meta-data
android:name="com.google.android.gms.games.APP_ID"
android:value="#string/app_id" />
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<activity
android:name="com.*************************"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:launchMode = "singleInstance"
android:configChanges="keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="#string/app_name"
android:name="com.*************************"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize">
<!-- android:launchMode = "singleInstance">-->
</activity>
<activity
android:label="#string/app_name"
android:name="com.******************************"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>
</application>
Any ideas why this would be having this effect?
here are the permissions my app requires
full network access
view network connections
i am using google play services
Because in manifest you have mentioned
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
which support from 14 to 18. Increase your targetsdk version to 21. min sdk version to 11
( android 3.0 to 4.4)
<uses-sdk
android:minSdkVersion="11" // you can target from android 3.0 as your wish
android:targetSdkVersion="21" />
I managed to get this working after speaking with google support
this line
<uses-feature android:glEsVersion="2" android:required="true" android:name="GLES2.0"/>
should have been
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
i got the fist method from a tutorial but i cant for the life of me remember which one, so just becareful what resources you use because they are not always correct
Use:
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
Related
I am using a react-native android app. And my device is not supported because it does not have the required feature: android.hardware.telephony.
Yes, I do not have telephony in my tablet. But, I am not adding this required feature in my manifest. So, where exactly is react-native adding this required feature in the build? And how can I turn it off.
My manifest file is below.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kalhatti.main"
android:versionCode="5"
android:versionName="1.5">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="22" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:label="#string/app_name"
android:icon="#mipmap/ic_launcher"
android:theme="#style/AppTheme">
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
Thanks.
To allow the app to be installed in tablets, add the following to AndroidManifest:
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Thanks to #GabeSechan for answering in comments.
Shows up as supported devices 0 in developer console.
I tried getting rid of screenOrientation="portrait".
Could it be the .MainActivity?
What I have tried:
Changing permissions.
Changing MainActivity.java
Altering activity_main and
fragment_main.
Removed all permissions & features required
What I have read:
http://developer.android.com/guide/practices/compatibility.html
http://developer.android.com/guide/topics/manifest/manifest-intro.html
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.fewquery.orb"
android:versionCode="2"
android:versionName="2.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.flash"/>
<uses-feature android:name="android.hardware.autofocus"/>
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<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>
</application>
</manifest>
It's
android.hardware.camera.autofocus
android.hardware.camera.flash
not
android.hardware.autofocus
android.hardware.flash
See documentation
I've done an app and I've tried it on my tablet via USB.
But when I uploaded it to market it didnt show for my pad... :S
I guess the problem is in my manifest...
Here is my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.thorne.godnattsmamonster"
android:versionCode="2"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<uses-permission
android:name="android.permission.CAMERA"
android:maxSdkVersion="19" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="19" />
<uses-permission
android:name="android.permission.VIBRATE"
android:maxSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.thorne.godnattsmamonster.MainActivity"
android:label="#string/app_name"
android:screenOrientation="sensorLandscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.thorne.godnattsmamonster.BookInterface"
android:label="#string/title_activity_book_interface"
android:screenOrientation="sensorLandscape" >
</activity>
<activity
android:name="com.thorne.godnattsmamonster.SettingsActivity"
android:label="#string/settings"
android:screenOrientation="sensorLandscape" >
</activity>
<activity
android:name="com.thorne.godnattsmamonster.Peekaboo"
android:label="#string/title_activity_peekaboo"
android:parentActivityName="com.thorne.godnattsmamonster.MainActivity"
android:screenOrientation="sensorLandscape">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.thorne.godnattsmamonster.MainActivity" />
</activity>
</application>
</manifest>
What do I need to add?
BR
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
That's your problem there. Some/most tablets don't have external storage. Either use internal storage (in which case you don't need a permission), or try adding android:required="false" to your WRITE_EXTERAL_STORAGE permission. Either way though, you are going to have to go into your code where you are writing to external storage and change it to internal, or handle the case where a tablet doesn't have external storage.
Today I've been updating my android app but this isn't going as expected.
I'm using google maps and after the update I don't get it to work anymore.
I got another API key and everything.. Now the difference is I used Google APIs 4.2.2 and after today 4.4
Could it be that the code to display a Google Map changed in these APIs? Is there a way to keep track of the changes and if yes where?
In the old app where it works I use following code in an XML file to display a map
<fragment
android:id="#+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_below="#id/upper"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="be.khk.mmapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<permission
android:name="be.khk.mmapp.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET" />
<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.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="#drawable/mm_icon"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="be.khk.mmapp.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>
<activity
android:name="be.khk.mmapp.NewsActivity"
android:label="#string/news_activity" >
</activity>
<activity
android:name="be.khk.mmapp.RetailersActivity"
android:label="#string/retailers_activity" >
</activity>
<activity
android:name="be.khk.mmapp.VoucherActivity"
android:label="#string/voucher_activity" >
</activity>
<activity
android:name="be.khk.mmapp.AboutUsActivity"
android:label="#string/aboutus_activity" >
</activity>
<activity
android:name="be.khk.mmapp.RetailerActivity"
android:label="#string/retailer_activity" >
</activity>
<activity
android:name="be.khk.mmapp.ContactActivity"
android:label="#string/contact_activity" >
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<uses-library android:name="com.google.android.maps" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyBnVb**************************6pUvk" />
</application>
</manifest>
If anyone could lead me in the right direction that would be nice.
The Google Maps SDK is stored in Google Play Services and is updated independently from the Android OS. What phone are you using? If you flashed a custom ROM, make sure it has Google Play Services. Can you also provide your AndroidManifest?
EDIT: check logcat for authorization failure.
I want to publish my new app in Play Store but see this message in app panel:
This application is only available to devices with these features,
as defined in your application manifest.
Screen layouts: SMALL NORMAL LARGE XLARGE
Required device features
android.hardware.location
android.hardware.location.gps
android.hardware.location.network
android.hardware.screen.portrait
android.hardware.sensor.accelerometer
android.hardware.touchscreen
This application is available to over 0 devices.
Why it said that my app available to over 0 devices? I have tested on my phone and it works. At least one device :)
My Manifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="..."
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="15" />
<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_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.sensor.accelerometer" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#android:style/Theme.Black.NoTitleBar" >
<activity
android:name="MainActivity"
android:configChanges="orientation"
android:label="#string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="ListActivity"
android:screenOrientation="portrait">
</activity>
<activity
android:name="SettingsActivity"
android:screenOrientation="portrait">
</activity>
<activity
android:name="HelpActivity"
android:screenOrientation="portrait">
</activity>
<activity
android:name="AboutActivity"
android:screenOrientation="portrait">
</activity>
</application>
</manifest>
This shows up using IE. Go and look in Firefox, and you will have a large # of devices.