piggilypoo
Aspiring developer
Profile
Posts: 172
Reg: Jun 28, 2011
San Diego
5,120
06/18/12 06:14 PM (13 years ago)

v1.4 app not compatible with some ICS devices

Hey guys, I have a BT 1.4 app in the marketplace, but as of recently I've noticed I've been getting e-mails more frequently from ice cream sandwich users saying they cant download my app from the market, because it's saying its incompatible. i've also had some users saying the app worked on their device, and then once they updated to ICS the app no longer worked. I was curious as to how to go about fixing this? Would it be as simple as recompiling the APK with the Google API 4.0 checked instead of 1.6?
 
Paul Rogers
Android Fan
Profile
Posts: 2524
Reg: May 30, 2011
UK
35,740
like
06/18/12 06:38 PM (13 years ago)
Something strange happening over there, the last week or so, my device is incompatible with most apps, including ones I've previously downloaded. It's just an old HTC Wildfire Android 2.2. Maybe just a glitch at gplay, glitches do happen there.
 
piggilypoo
Aspiring developer
Profile
Posts: 172
Reg: Jun 28, 2011
San Diego
5,120
like
06/18/12 07:29 PM (13 years ago)
I have a customer who has a lg nitro hd for example, and after upgrading to ICS, the app doesn't work anymore. Another who is using a CUBE U9GT 2 tablet, and gets an incompatibility error in the marketplace
 
GoNorthWest
buzztouch Evangelist
Profile
Posts: 8197
Reg: Jun 24, 2011
Oro Valley, AZ
1,000,000
like
06/18/12 07:35 PM (13 years ago)
Somebody should try to compile their app with the ICS version of the Google APIs and see what happens. That might solve the problem. The APIs BT requires are minimum levels...not the only level. Mark
 
piggilypoo
Aspiring developer
Profile
Posts: 172
Reg: Jun 28, 2011
San Diego
5,120
like
06/18/12 07:47 PM (13 years ago)
Wont compiling with a higher version make the app invisible to users on a lower version? For example, if i set my API to 4.0, will 2.2 users still be able to see and download the app? Here's another thing I noticed... I have 2 versions of my app, one free and one paid. Both BT 1.4 apps. The free one however, has some modifications to allow admob to run within the app. Users who are having issues claim they can download the free version and it works fine, but when they go to download the paid version, the market tells them their device isn't compatible with the app. I've updated the paid version to use the 3.2 API used by the free version, but this doesn't change anything. The only different lines of code in the manifest file from the free to paid versions is this: <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> The only other changes are those made to individual screens to allow the ads to display, and the inclusion of the admob sdk. Stumped as to why the inclusion of admob would solve the compatibility issues..
 
Fred@mySkylla com
Android Fan
Profile
Posts: 5259
Reg: Oct 03, 2011
location unknow...
62,560
like
06/18/12 10:15 PM (13 years ago)
if i set my API to 4.0, will 2.2 users still be able to see and download the app? They should not be able to. Curious regarding your two apps. Fred Edit: This answer assumed the minimum sdk Version was set to level 14 or 15 It doesn't have to be as indicated below. So, as some one once said I was wrong before I was right.
 
GoNorthWest
buzztouch Evangelist
Profile
Posts: 8197
Reg: Jun 24, 2011
Oro Valley, AZ
1,000,000
like
06/18/12 10:20 PM (13 years ago)
As long as you set the <uses-sdk> parameter correctly, you should be able to compile with API 4 and have 2.2 users still see and download the app. Here is the official documentation: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html Mark
 
fusionmtx
Android Fan
Profile
Posts: 178
Reg: Jun 15, 2011
Orlando
2,180
like
06/18/12 10:55 PM (13 years ago)
I have a Samsung note on a Downloaded Version of ICS and the App (1.4) would not work. HOWEVER the app worked on a Official version of ICS. not sure if this is related or helps
 
Fred@mySkylla com
Android Fan
Profile
Posts: 5259
Reg: Oct 03, 2011
location unknow...
62,560
like
06/18/12 11:09 PM (13 years ago)
android:minSdkVersion An integer designating the minimum API Level required for the application to run. The Android system will prevent the user from installing the application if the system's API Level is lower than the value specified in this attribute. You should always declare this attribute. android:minSdkVersion: The minimum Android platform version supported by the application, specified as an API Level. While the application is not compiled against this version of the Android SDK, developers should use this attribute to indicate compatibility. If this value is not set, the assumption is that the application is compatible with all versions of the Android SDK. Using this attribute is highly recommended. 2.2 devices can see BTv1.4 app using Google 1.6 API level 4 1.5 devices can not see BTv1.4 app using Google 1.6 API level 4 Therefore: 2.2 devices should not be able to see BTv1.4 apps using Google 4.0 API level 14 or 15 But if the minimum sdkVersion is not set then it will be able to see the app. If the app requests a feature above 2.2 then the app should crash. I suppose if the app was coded to not request the feature if the device is below the feature level then the device wouldn't crash since the feature is not requested. So the solution is to recompile the APK with the Google 4.0 API Level 15 but set the minimum sdkVersion to Google 1.6 API level 4. Therefore the new devices (ICS) can see the app and the older devices (Donut and above) can use the app. Fred
 
David @ buzztouch
buzztouch Evangelist
Profile
Posts: 6866
Reg: Jan 01, 2010
Monterey, CA
78,840
like
06/18/12 11:10 PM (13 years ago)
One word - fragmentation! LOL. There are countless mysteries when it comes to the Android Market. Oh, wait, Google Play. One of them is the way the documents claim to "handle" compatibility when it comes to downloading apps. Tons of discussions and frustrations about this online. I would do what @GoNorthWest suggested and set the uses-sdk value to a low value so the market won't filter your app "out" of the list when viewed in an older device. See the URL @GoNorthWest posted above, THEN this one... http://developer.android.com/guide/appendix/api-levels.html#uses
 
piggilypoo
Aspiring developer
Profile
Posts: 172
Reg: Jun 28, 2011
San Diego
5,120
like
06/18/12 11:30 PM (13 years ago)
It looks like by default, the minsdk version in the manifest of a 1.4 app is set to "4", so i think that rules out the compiled API version as the cause of the incompatibility. I sent the customer my paid app that Google Play says is incompatible... and he was able to run it just fine. But the Google Play still tells him its incompatible on his device and won't let him get it from the marketplace. Makes no sense if the app is clearly compatible... and makes even less sense that my free app, compiled with the same API's (3.2), is compatible and downloads just fine... @_@ I've gone through every single file of my free app and paid app to see if I can find any differences that might matter. I've gone ahead and added admob to my paid app in every way except I didn't actually edit the layout files to include the ads. I also noticed my paid apps icon.png file was 80x80 and my free apps icon was 45x45. Not sure if that matters but I copied over the 45x45 icon just to test it out. Now both apps - in theory - are identical minus the inclusion of admob in the layout files. Just uploaded to Google Play, going to test it out and see if the compatibility error still exists. Edit: Google play still says app is incompatible..
 
piggilypoo
Aspiring developer
Profile
Posts: 172
Reg: Jun 28, 2011
San Diego
5,120
like
06/19/12 09:55 AM (13 years ago)
Sorry for the double-post, but I wanted to bump this topic with what I think is the solution. After talking to google and doing some digging on the devices my customers have been using, I believe the issue has to do with the copy protection checkbox when uploading your app to the google market. This was the message I received after contacting Google: "Thank you for your note. Our records indicate that your app is copy-protected. If your app no longer appears in Google Play after enabling Copy Protection, please note that our copy protection relies on being able to trust the build of Android that the app is installed on. Therefore, we only show copy-protected apps to known good builds of Android. If a specific port of Android is not a known good build (e.g. some “Custom ROMs”) or the device is rooted, Google Play will not display copy-protected apps to these devices. If the users switch to an official version of Android, they'll be able to see your application again. Copy protection may help prevent applications from being copied from a device. It also increases the amount of memory on the phone required to install the application. We expect to deprecate copy protection soon. To avoid this issue in the future, we advise disabling copy-protection and using the Licensing Service instead. If you have a paid application, review the instructions on implementing Google Play licensing service here: http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=186113. For free application, we recommend implementing your own copy protection scheme." Which makes sense.. users who can't wait for the update of ICS and are using unofficial versions, will receive these incompatibility errors. Going to remove the copy protection and see if it helps!
 
Fred@mySkylla com
Android Fan
Profile
Posts: 5259
Reg: Oct 03, 2011
location unknow...
62,560
like
06/19/12 10:14 AM (13 years ago)
@pigglypoo, the Google Ads SDK requires 3.2. Are you leaving the minimum sdkVersion 4? If so, does this cause issues with older devices? Fred
 
piggilypoo
Aspiring developer
Profile
Posts: 172
Reg: Jun 28, 2011
San Diego
5,120
like
06/19/12 09:37 PM (13 years ago)
I can comfirm that after removing the copy protection, users no longer get the compatibilty error! @Fred, according to the statistics in the developer console, most of the users who have downloaded the version with admob are running android 2.2, and I've yet to receive any complaints about crashing or errors.. so it looks like leaving the minimum sdk at 4 doesn't affect anything! And the market still shows "Requires 1.6 and up" as well
 

Login + Screen Name Required to Post

pointerLogin to participate so you can start earning points. Once you're logged in (and have a screen name entered in your profile), you can subscribe to topics, follow users, and start learning how to make apps like the pros.