I'm developing a game on Android that has been running well over months on all devices I know of. But recently I noticed that S4 users typically uninstall the app right away, and finally someone with an S4 (jflte) wrote a review, stating that the app "does not start".
I cannot reproduce this behaviour in an AVD (related) and won't have an S4 at hand any time soon. Googling the issue, I found that this is not umcommon with S4's and might be related to SD-card installs. I did not find any solution though. My app uses OpenGL with android.opengl.GLSurfaceView.
Question is: What are my options to investigate the problem? I've seen the RTL option, but it seems to be some kind of premium thing. Disabling S4 support in the Play Store does not count as solution. I would love to have LogCat output of the startup attempts on an S4.
Here's my AndroidManifest, as far as relevant:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.orbs"
android:versionCode="24"
android:versionName="2.1"
android:installLocation="auto" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="#drawable/orb_launcher"
android:label="#string/app_name"
android:name="orbs.OrbsApplication">
<activity
android:name="orbs.controller.MainMenuActivity"
android:screenOrientation="portrait"
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="orbs.controller.GameActivity"
android:screenOrientation="portrait"
android:label="#string/app_name" >
</activity>
<activity
android:name="orbs.SettingsActivity"
android:label="#string/app_name"
android:theme="#android:style/Theme.NoTitleBar" >
<intent-filter>
<category android:name="android.intent.category.PREFERENCE" />
</intent-filter>
</activity>
</application>
Thanks in advance!
First thing is to try and get users to send error reports when a crash happens, but lets face it, most people won't do that.
So I would suggest looking into an automatic crash reporting system such as Crittercism.
Related
I am trying to upload an update to google play store but after uploading the apk it says 0 supported device.
Some of the similar questions are caused by 3rd party libraries but i don't use any new library.
I am using v7 appcompat support library. I was using v4 previously and it had no problem with Google Play. I don't know if this is the problem but this is the only change i made in terms of external libraries.
Here is my manifest file :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.saliherikci.poemnotebook"
android:versionCode="10"
android:versionName="2.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="25" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:logo="#drawable/ic_action_logo"
android:theme="#style/AppTheme" >
<activity
android:name="com.saliherikci.poemnotebook.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="com.saliherikci.poemnotebook.ReadPoemActivity"
android:label="#string/title_activity_read_poem" >
</activity>
<activity
android:name="com.saliherikci.poemnotebook.SelectedAuthorsPoemsActivity"
android:label="#string/title_activity_selected_authors_poems"
android:parentActivityName="com.saliherikci.poemnotebook.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.saliherikci.poemnotebook.MainActivity" />
</activity>
<activity
android:name="com.saliherikci.poemnotebook.FavouritesActivity"
android:label="#string/title_activity_favourites"
android:parentActivityName="com.saliherikci.poemnotebook.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.saliherikci.poemnotebook.MainActivity" />
</activity>
</application>
</manifest>
I wonder what might be the problem.
I ran into the same thing last night and read the most recent articles on this and I guess there is a recent Google bug causing the supported devices to always show up as 0 until it's actually rolled out to production.
I took a chance and released the update and sure enough all the supported devices were there in production. So if you haven't changed anything in the Manifest from the last release you're probably safe to do so as well. (Also I don't see anything in the posted Manifest that would cause any issues)
I have tried converted my android app from eclipse to android studio project and app is working on testing on emulator and my real device but I couldn't find it when trying to exit the app .. After publishing to the store I got the same issue + app is never open .. after installing I just got uninstall only on google play store .. please help :)
this is app url to the store : https://play.google.com/store/apps/details?id=com.linkedtalents.app&hl=en
Here is my manifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.linkedtalents.app"
android:versionCode="10"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="#drawable/launch123"
android:label="#string/app_name"
android:largeHeap="true" >
<activity
android:name="com.linkedtalents.app.Splash"
android:theme="#style/AppBaseTheme"
android:screenOrientation="portrait"
android:configChanges="locale"
>
it seems that you are missing the intent filter. at least you didnt post it. can you have a look that you have the MAIN LAUNCHER like here? you need exactly one activity that matches this, if you want to be started from a homescreen.
<activity
android:name="..."
android:label="#string/app_name"
android:theme="#style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
I developed an android app. Its manifest is very simple and copied below.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.siddjain.jainaartis"
android:versionCode="1"
android:versionName="1" >
<uses-sdk android:minSdkVersion="7" />
<uses-configuration android:reqFiveWayNav="true" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:name=".Main"
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=".DisplayForm"
class=".Aarti" >
</activity>
</application>
</manifest>
The Play store reports this app to be incompatible with many devices. Specifically, it reports it to be incompatible with Samsung GT-S5570 which is my phone. I installed the app onto my phone manually, and it works.
The developer console gives this message:
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.touchscreen
This application is available to over 266 devices.
The device availability dialog lists Samsung GT-S5570 as incompatible.
How can I fix the compatibility issue? What is there in my manifest that is causing the app to be classified as incompatible with Samsung GT-S5570? As mentioned earlier, I have checked the app works on my phone.
The specs of the phone are available here btw. It has a display resolution of 240x320 pixels and has Froyo (android v2.2.1)
Was able to fix this using following manifest (support for small screens has to be declared explicitly). The number of devices to which the app is available increased from 266 to 1272.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.siddjain.jainaartis"
android:versionCode="3"
android:versionName="1" >
<uses-sdk android:minSdkVersion="7" />
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"/>
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:name=".Main"
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=".DisplayForm"
class=".Aarti" >
</activity>
</application>
</manifest>
Might be a carrier restriction. The play store filters apps via known information about your device (screen size, OS, carrier), but not if it can install and/or work or not. It would be a nightmare for development (and non play store apps) if you couldn't install because it checked compatibility.
How long ago did you add the app? If you just added it, it takes several hours for it to propagate and become available.
I see it uses 5 way nav. Does your application use this (I assume so) and does it work in your application?
I am testing my app in Samsung Galaxy S2 with Android 2.3.4
I am following
http://developer.android.com/guide/topics/usb/accessory.html
instructions.
When ever I try to run it, usbManager.getAcccessoryList(); giving null.
Even I tried by connecting OTG cabel and pendrive to it.
My manifest.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-feature android:name="android.hardware.usb.accessory" />
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="#drawable/icon"
android:label="#string/app_name" >
<uses-library android:name="com.android.future.usb.accessory" />
<activity
android:name=".SplashScreen"
android:clearTaskOnLaunch="true"
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=".Advanced"
android:label="#string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".Edit"
android:label="#string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".Add"
android:label="#string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="Main"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="#xml/accessory_filter" />
</activity>
</application>
</manifest>
I had the same problem but my tablet has ICS. If try what I did, might work. I've been searching a lot for this, and couldn't find it, but thanks to all the people who have spent a few moments answering our questions, and the wiki resources on the web, I figured it out.
There are some missing files in some android builds, like the AINOL NOVO 7 PALADIN. I think this would work in any ICS tablet with the same issue. I understand that the Galaxy Tab has the same issue but as I don't have one I can't confirm this. If you do, let me know if it works for you.
So lets push the files in and see how it goes.
Copy some missing files into system drive:
$ adb remount
$ adb push AINOL_FIX/system/etc/permissions/android.hardware.usb.host.xml /system/etc/permissions
$ adb push AINOL_FIX/system/etc/permissions/android.hardware.usb.accessory.xml /system/etc/permissions
NOTE: If an error appears displaying Out of Memory, it's right and you must delete some files from system drive. I recommend some live wallpapers from system/app.
I understand that for writing system drive you should have root access, I already had it when I did this so if it doesn't work, root it.
You can get the files from android source builds or from a tablet where USB-HOST API is actually working. I got them from linaro's ICS build for pandaboard.
Now, you should try finding those files but for Gingerbread and you'll also need to push the
future.usb.accesory.jar into system/framework, if it isn't there already.
$ adb push AINOL_FIX/system/framework/com.android.future.usb.accessory.jar /system/framework
A cite from http://developer.android.com/guide/topics/usb/accessory.html: "Set the minimum SDK of the application to API Level 10 if you are using the add-on library or 12 if you are using the android.hardware.usb package."
You are using the android.hardware.usb package. So, you have to put the version to 12.
An error is found :-)
And don't forget to really change SDK version to 12, not only declare it!
Use com.android.future.usb package instead, according to docs.
I have a device that is not seeing my app on the market. It is a Galaxy S II from T-Mobile. However, other devices can see it and it is listed as compatible in my Developer Console. The only obvious difference is that the owner loaded the new version of Gingerbread early to the device.
Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="inc.rufus.repair"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INSTALL_PACKAGES"></uses-permission>
<uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_READ"></uses-permission>
<application android:icon="#drawable/icon" android:label="#string/app_name">
<activity android:name=".RufusRepairToolActivity"
android:label="#string/app_name"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="RufusRepairToolActivity$SecondaryReciever">
<intent-filter>
<action android:name="inc.rufus.REPAIR_CONTINUED" />
</intent-filter>
</receiver>
</application>
I have looked at other similar problems, but nothing seems related (the app is very small, etc).
The real problem is the device belongs to my boss, so it really doesn't matter how many other devices it runs on.
Device Information:
Type: Galaxy S II (SGH-T989)
Carrier: T-Mobile
Android Version 2.3.6 (GINGERBREAD.UVKL1)
Did you enabled copy protection when publishing it? If so, uncheck it.
search by the package name.
the marketplace search has been very wonky
For one reason or another reducing the minSDK to 1 allowed him to see the application. I do not understand why this would possibly be the case, but that's an issue for another day I guess.