I uploaded an application to Play Store which I can't install on Samsung Galaxy Tab 3. It just tells me that device is uncompatible and no reason. I've checked in Developer's Console and it is also unsupported by Galaxy Tab 3 7.0, Galaxy Tab 4 and other tablets. Here's my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="***"
android:versionCode="2"
android:versionName="1.0.1" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
android:name="***.App"
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>
<activity android:name="***.DocumentInfoActivity" />
<activity android:name="***.ReaderActivity" />
<activity
android:name="***.ImageOverviewActivity"
android:theme="#style/Theme.Transparent" />
<activity
android:name="***.AccountsActivity"
android:windowSoftInputMode="stateHidden" />
<activity android:name="***.SearchHelpActivity" />
<activity
android:name="***.DeveloperSettingsActivity"
android:label="#string/preferences_title" />
</application>
</manifest>
As you can see there's nothing special which can influence on compatibility. Can there be some hidden reasons in code for example? How can I fix and test this?
I can install and run the app on SG Tab 3 avoiding Play Store.
I'm not 100% sure but it could be, that your front facing camera has no autofocus, thats why you'd have to add following in your AndroidManifest.xml:
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
please let me know, if this worked - cause, I'm pretty sure, that some persmissions are to restrictive
Edit:
you can test the modification, if you upload the new apk in alpha or beta mode. After some hours your test accounts will receve the update, but it's not published yet.
Related
I am a newbie on android. I have Created a WebView app.
When I test my application through an emulator, it works fine.
The app is also installed when I select the
Run -> Run 'app' -> and then select my connected device (Not Emulator).
But when I go to my project folder /app/build/outputs/apk/debug/xyz.apk
or under the folder /app/build/outputs/apk/release/xyz.apk
then when I select to install then I receive an error that is App is not installed.
Any suggestion where I am doing mistakes.
I also generated the signed apk through Build-> Generate signed Bundle or Apk option. But not getting any success.
Any help is really appreciated.
This is my AndroidManifest.xml file
<?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.example.test">
<uses-sdk android:minSdkVersion="21"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:name="android.hardware.camera" />
<application
android:hardwareAccelerated="true"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="Test"
android:roundIcon="#mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="#style/AppTheme"
android:name=".MyApp">
<activity android:name=".SplashActivity" android:theme="#style/SplashTheme" android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity" android:configChanges="orientation|screenSize"/>
</application>
</manifest>
It is done through simplest process. Go to Build -> click on Rebuild Project.
That's it. I got this solution. And I am installing this apk to my cellphone(Real device)
So , I was developing an Android application for Arduino and I was right about to post it on Google Play but first I though I should test it on different devices. So I sent my apk to a few of my friends.
Here are the devices i tested it :
One plus 6T : works perfectly
Asus zenfone 5z : again works perfectly
Samsung galaxy note 9 : when the app is opened it instantly crashes
Has anybody ever encountered such thing ?
My first guess was about the resolution of the device: the first two devices are running at a resolution of about 2280x1080 while the Note 9 runs at 2960x1440.
I added into the Android Manifest file the lines for supporting screens but seems that they don't help.
I also created "Landscape variations" and "tablet variation" for my first three activities but that also didn't helped.
Here is my Manifest code :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.edi.bluetoothgoogleplay">
<uses-feature android:name="android.hardware.bluetooth" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.INTERNET" />
<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-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:xlargeScreens="true"
android:smallScreens="true">
</supports-screens>
<application
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="#drawable/newicon"
android:label="Arduino Controller"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name=".FirstActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".ChooseActivity"
android:screenOrientation="portrait" />
<activity
android:name=".CarActivity"
android:label="#string/title_activity_car"
android:screenOrientation="landscape"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".LedActivity"
android:screenOrientation="portrait" />
<activity
android:name=".TerminalBluetooth"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
</application>
</manifest>
I have opened my app for beta testing on Google Play. I tested the app on my phone (Samsung Galaxy Y S5360) using eclipse before uploading it to Google Play. It runs smoothly from eclipse, but when I opened it as beta in Google Play and tried to download the app to my phone. It says “Your device isn't compatible with this version”.
Here is my Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myproject.newapp"
android:versionCode="10"
android:versionName="2.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="#drawable/mc_logo"
android:label="#string/app_name"
android:theme="#style/Theme.Sherlock" >
<service android:name="com.myproject.newapp.QueueService" />
<activity
android:name="com.myproject.newapp.LoginActivity"
android:icon="#drawable/mc1_logo"
android:label="#string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.myproject.newapp.SplashScreenActivity"
android:label="#string/title_activity_splashscreen"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
</application>
</manifest>
As you can see I declared the minSdkVersion="9" which matches my phones android version. Im new to uploading android apps in Google Play, please help me out. Thank you very much.
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.
In messing around, I noticed that adding a dummy API Key to a working project's AndroidManifest.xml does not affect the project. In fact, I added key "Asfasdfasdfasfa" which isn't even valid and the project continues working.
Could someone draw light on this issue? Is there caching going?
Console:
MY:SS:HA:1K:EY;com.company.myproject
MY:SS:HA:1K:EY;com.example.gmaptest
Working manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.myproject"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<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" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.company.myproject.MainScreen"
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.maps.v2.API_KEY"
android:value="asdfadf22" />
</application>
</manifest>
Take a look of this: Can I have a single Google Maps API key for all my apps without registering their package names?.
To create an API key, you provide some information that include the package name of the app. That means you are trying to validate one of your apps with a key created with another package name, this could be the issue.