I'm trying to track down an issue that has just popped up. I have an app that one of my users purchased back in September that has worked fine. He has since wiped out his phone, and re-installed the stock rom. Now, for some reason, when he goes to install my app, the Android Market tells him its not compatible with his phone.
He has a Samsung Galaxy S. Looking at the statistics for my app on the Android development site, I'm showing 137 users who have installed the app on their Samsung Galaxy S's.
Since he purchased the app, I have released a couple of updates, including one a few days ago. The update from a few days ago was minor, but, it was done after a fresh re-install of my laptop, eclipse and Android SDK. This was the first update I did with ICS sdk installed as well.
How can I track down this issue? The app is just a simple soundboard, nothing complicated.
Few thoughts, first read up on how your app is configured for availability in marketplace. Maybe while submitting it you made a mistake.
Second, look at the way Android uses manifest file to say that app X requires minimum version, say 1.6 of Android, and the also how it uses manifest file to do set target sdk (basically read up on manifest file settings minsdkversion, targetsdkversion).
Lastly get the user's Android version, and try running your app on that version of Android emulator, if you can do that on handset it is better, but emulator should suffice. Good Luck.
Related
I recently upgraded my Android phone to have Android 8.1 (LineageOS 15.1) only to realize that my office mail client does not work with it. When I consulted with the concerned team in the office, the only options I was given is to either wait till the issue is resolved (which will be late this year) or roll back to previous Android version. Now, I don't want to roll back my Phone to the previous version.
Now I am not sure if it's possible/feasible, but I was wondering if there is any way to simulate Android version for a specific app. There are application which can make your device to appear as a completely different device (I tried Market Helper), but couldn't find any option to simulate prior version.
If Android API is backward compatible, shouldn't it be possible to simulate version to specific apps? (I understand that this may not work completely, but it should be worth a shot).
Thanks in advance.
Not sure about specific app, but you can edit your device build.prop and change OS version to one, you want.
Еdit Android Version by locating ro.build.version.release= and changing the current Build Version.
First question, appreciate some guidance. I am currently teaching myself to develop for Android and have installed my app (via Studio after builds) onto my own phone.
Every now and then my phone will restart itself (not querying that - these things happen).
During these (occasional) restarts I will get a message that Android is "Optimising App 1 of 1". I am pretty sure it is my app being "optimised".
I have searched here and the Web. Most of the questions seem to be users that have recently upgraded OS Version and that is causing the issue. There seems to be anecdotal evidence that wiping the cache cures this and that it only does it while the device is being charged.
However, if it is my app, I don't want users of my to go through this. I suspect it relates to the Target SDK I am using but it might be something different?
So, what is Android optimising? How can I make best efforts to stop my app being the cause of this?
Many thanks.
Earlier Android OS used to run on Dalvik Runtime which means apps used to compile at the time of execution. But now, Android has switched to ART with Lollipop version. It means all the apps will be compiled beforehand making them launch faster. So "Optimizing the Apps" basically means Android is compiling all the apps.
From Android 5.0, Android uses ART instead of DVM So every time your mobile OS upgraded This will happen. Also “Optimizing app” should happen only once after OS upgrade. If it’s happening every time then there is some issue in your mobile.
A factory reset should be probably solving this. (You have to go
through the pains of redownloading all your apps etc).
I'm trying to teach myself JavaScript by creating an little puzzle/game app with Cordova. I've got a basic prototype thing working, and have successfully got it to build on iPhone, and it runs perfectly.
I have 3 android phones to test with, 1 Marshmallow (BLU branded), 1 Lollipop, and 1 Kitkat... and the app works perfectly on those as well. I sent the app to 2 friends on the other side of the country to test, and it crashes on their Samsung Marshmallow phones ( a Galaxy 7, and a Galaxy Edge 7). It runs for a bit, and then just crashes without any user input.
So, I tried 2 separate crash analytics plugins, Fabric and Crittercism. I can verify that both of these are working, as I can force a crash in the app, and it shows up as a crash report.
But when my friends run the app with the crash analytics, whatever is going on that makes the app blowup, it isn't triggering any reports from Fabric or Crittercism. I've tried to get the android emulator running on my PC, but unfortunately it is an AMD processor, which is missing some necessary virtualization. I can't even get the super slow ARM version of the emulator to run on my PC, it just hangs forever.
I just recently installed cordova, and took all the defaults during setup. So from what I can tell, it should be targeting android API 23 (Marshmallow). But maybe there's some other kind of build issue that is messing things up?
So I'm kind of at a loss of how to debug this problem. Short of finding someone locally who can lend me a Samsung Marshmallow phone to debug with, I can't think of anything else that would work. Does anyone have any ideas?
The ARM emulator is indeed excruciatingly slow. I would suggest a third-party emulator. I use GenyMotion (which uses VirtualBox under the hood). You might have some luck with that. Alternatively, ManyMo is a cloud-based solution that might prove useful.
The system web view used by PhoneGap/Cordova will vary widely across Android devices, which means you can run into different issues across Android versions and device manufacturers. I suggest using the Crosswalk plugin to mitigate those problems. Do note that this will increase the size of your APK and footprint of the installed app on your device.
When the app crashes, does it actually crash to the launcher, or does the app reload itself (or just show a background color)? I wouldn't expect Crashlytics to handle JavaScript issues unless the JavaScript caused the app to crash out to the launcher.
I recently released my app to the Google Play community. The team and myself tested the app on Gingerbread, jellybean, and kitkat. All were either Samsungs or Nexus. Now we have someone getting a crash on a Motorolla Droid Bionic, Android version 4.1.2.
My app required wifi (not Cell data) connection which is not possible with androids emulator. I am in the process of installing android on VirtualBox but I don't know if this will allow me to identify the problem.
Should I be this concerned? This is my first app and I want to make sure it works for everyone? This app is for controlling a home appliance so I feel like we need to make sure that it works, but I'm not sure how to really get accurate test results and error messages.
What do other developers do to emulate accurately specific phones and OS versions?
thanks for any advise and help.
Ask for the "Stack Traces" reported in "Crashes & ANRs" section of your application in Google play Developer Console to have more details about the problem.
The Nexus android phone went on sale today with 2.1 Os on them. My friend
just ordered two with overnight shipping. I assume that means it will be in his hands tomorrow or the next day.
How is it even remotely acceptable that people will have 2.1 in their
hands before developers even get to touch the SDK? I already have
users using the Nexis-Droid 2.1 rom saying that my highly used widget
doesn't work. How am I supposed to test this out in advance without
hacking our phone all up?
All this does is frustrate users when apps don't work and further
degrades the market with 1 stars because developers don't have a
chance to update their code.
Thanks google....
You can expect the SDK in a few days. Google said it would be "open-sourced" in the next couple of days. It does suck that we don't have it yet. If I remember correctly, we received 2.0 about a week before the DROID was released, and we got 2.0.1 about the same time frame before it was pushed down to the DROID.
People using an OS that isn't available should not be complaining about apps not working. It's their choice to be an adopter of an OS that isn't even released yet. They can deal with the consequences. (which has nothing to do with you)
The part I hate about the market is our inability to respond to ratings. I have more than 2500 ratings for my app, yet I constantly get 1-stars because the users are morons and can't read. Yet I only have 325 characters for my app desciption. I have started writing my own comments and updating it to respond to ratings.
I haven't developed anything yet for Android but have looked into the SDK a bit.
I saw is possible to specify a maxSdkVersion in the manifest.
I'd say developers should put there the max version of the SDK that they've been able to test.
So if no SDK 2.1 is available yet and you put 2.0 or 2.0.1 there, it will prevent Nexus One users to download your application (I'm guessing here it works that way).
It would be in the interest of Google to release the SDK if Nexus One users cannot download and install any application at all. The users will be blaming Google then instead of you.
Edit: Oops, somebody commented it before.
Android 2.1, Release 1 SDK
The SDK has been released; this is the first time that an Android SDK has followed the release of a device running that version.