One of the app I am working on works fine on Samsung Galaxy Ace and Samsung Galaxy Y but a user reported that app crashes on installation in Samsung Galaxy S3.
Now I am wondering how could a app working well one phone crashes on installation on another phone, what could be the reason for such a crash?
Also how could I replicate the behavior of Samsung Galaxy S3 even when I don't have one and I don't intent to buy one (given the cost of the phone)?
As mentioned by AppMobiGurmeet in his comment, you can start by creating an Android emulator with the same characteristics as the Galaxy S3.
This can be enough to solve simple bugs, but there is really nothing like testing on the real device.
As it is impossible for you to test on this phone, I would advise you to implement some crash reporting system in your app, using ACRA for example (a really great library for debugging). This way yuo will see the stack of the crash (which is enough in most cases to understand what is going wrong)
Now I am wondering how could a app working well one phone crashes on
installation on another phone, what could be the reason for such a
crash?
Do you know what is the exception when it crashes? There could be so many reasons.
Different VM max size
Different screen resolution
Permissions - are you using specific hardware features/internet/external storage
It is impossible to tell without knowing the exception. If you cannot get the device, you can try to emulate as close to the device as possible. Android emulator allows you all these settings - screen resolution, max VM heap size, RAM size, external storage etc. So get the technical specs of that device and set up your emulator accordingly. Then try to reproduce the problem
Related
I just finished my first Android app. I tested it in the emulator and on my personal device (Nexus 6p). Other folks are installing it and it's working for them. My dad, however, also gave it a try. He has a Samsung Galaxy S6 running 6.0.1, and the app crashes on startup for him.
My guess is it's something touchwiz related. The thing is, he's not the most technical person, as far as getting a logcat would go. So... what are my options to try and investigate this issue?
Crashlytics can help you to retrieve the stack trace and exceptions when your app crashes.
But if you want to test and fix before the deploy, another options is Xamarin Test Cloud, it's a paid solution, but have a free-trial
[EDIT]
Searching in the internet, I found something similar to Xamarin Test Cloud, I personally have not tested this solution, but you can check it out.
TestMunk, they have a free plan.
This is an aspect of the extreme fragmentation of the Android ecosystem. I've seen bugs that manifest only on a specific device from a specific carrier. For example, at one point, Verizon broke ACTION_HEADSET_PLUG on one of their tablets, so that no app would ever receive it. It had worked fine on an earlier firmware version. Naturally, they refused to acknowledge the problem. The same tablet model from T-Mobile never exhibited this issue.
This is why I don't trust the emulator. It's fine for early testing, but you still need to test on the actual hardware that you intend to support. There are online services that test your app on a wide variety of real devices to try to uncover the weird vendor-specific issues. I've never used these services, so I can't recommend one.
I am trying to recreate an issue which is only caused on HTC One XL phone running Android 4.2.2. It is a styling issue which can be fixed with CSS. The problem is that the Chrome Developers Tool does not have a profile for HTC One XL phone running Android 4.2.2.
I do not have a real device! How can I test for an issue that only exists on particular phone running a particular Android version?
FInd someone with the device to test a beta or debug info gathering build. There's three reasons one particular device has issues.
1)Hardware problem. No emulator will solve this as they won't perfectly emulate hardware.
2)Software bug on this device's framework. Since each OEM ships their own set of patches, there's no way to know what is actually running, except for having the device.
3)Something weird in the system of an individual user. Some odd combo of software, hardware, and data. You need that actual phone to fix this, but it generally only effects a handful of users.
But none of these are solvable without access to the device, or a real Eureka moment. More logging helps, but you'd still need to get those logs which requires a device.
We have an Android application running on Android 2.2 on the Samsung Galaxy Tab that writes data into the SQLite DB.
However, we find the following intermittent problem arising on some tablets.
The data is written into the DB. (No SQLiteExceptions being thrown; we are committing the transaction).
But the DB does not actually contain the data.
Uninstalling and reinstalling the application or clearing the application's data does not appear to make any difference at all.
When we then factory reset the handset and repeat the same procedure, it works just fine. This problem is not restricted to a given piece; all of us in my dev team have come across this intermittently.
However, I have not been able to reproduce the problem on any Android handsets (I tried on the HTC Desire, the HTC Desire HD, and the Samsung Galaxy S, all running Android 2.2), or on the emulator (running the Galaxy tab add-on).
I have a suspicion this may have something to do with a bug introduced by Samsung when they hacked Android 2.2. I was wondering if anybody else had encountered this problem, and if so, do you guys know of any less drastic measure than factory resetting the tablet?
Thanks,
Siddhu
There are reports out there about Samsung misbehaving with Settings (not saving them). See this Google issue. The settings are also saved in the database. So my guess your issue is related, if not exactly the same.
Google for
samsung settings not saved
for more hits.
We faced similar issues with our app in Samsung. Couldn't find an official statement from Samsung, so in the end documented to the users that this could happen in Samsung devices.
How do I test my Android application such that it works on all major android phones ? e.g. Motorola, HTC, Samsung etc.
I have an app that works on Nexus One and Samsung but it is giving problems on HTC Incredible.
Well, it's probably because the Nexus One and Samsung don't use the Sense UI, so it sounds like it's an issue on devices running the Sense UI.
I would recommend getting a cheap htc phone running the Sense UI (wildfire, hero, etc.), and testing it on that.
Have you tried a remote test service like perfectomobile ? These services host real phones that you get remote access to for an hourly fee.
P.S. I'm sure there are others, and I'm not a shill. I have however used them successfully.
I think Motorola has a similar service as well.
If you actually have the devices nearby, it would be good to use automated testing, such as jUnit or Robotium on all of them. Especially Robotium seems like a good idea because technical bugs will show up in the Market anyway, but some buttons not showing due to different layouts on different devices will hardly not be reported at all.
I am an iphone application developer, all iphones have very similar Operating systems, and the size and everything is the same, so I don't need to create applications specific for each iphone.
But with android there are different phones, different sizes, So How can I possibly know that my app works, and looks fine on all these devices
I don't already own an android but I completed my first application using the simulator. Which android phone do u suggest for testing? I am an AT&T user and Iuse an iphone. Can I simply insert my sim-card in the new android to be able to test my app on the device?
The android virtual device lets you change the virtual hardware to match all of the current shipping phones. There are ways to receive device crash reports from a shipped application to help diagnose force closes or other grievous errors.
You need an unlocked phone to use another SIM card. The Nexus One is available unlocked out of the gate, and comes with an AT&T version. The only AT&T (as sold by AT&T) Android phone (Backflip) is stupidly crippled and should be avoided. You can also buy an Android Dev Phone, which is currently "middle of the pack" in terms of hardware. You can also easily find numerous other Android capable handsets - pick depending on your target market. Some phones are now old: for instance, the G1 is on its way out.
you won't need to worry about different screen size . take a look at Supporting Multiple Screen article . I'm not sure for the late ones because I'm also working with Android Emulator .
1 - Take a look at this Google IO session for load of tips on making your app work across devices. It's not that hard at all really
2 - I'd recommend the Nexus One if you need a phone just to develop on. It's representative of what you'll be seeing in devices in the coming years. If you want a current representative phone take a look at the HTC Legend (Mid-end) or the HTC Wildfire (Low-end). There's also the Droid and things like that but you can only get them on Verizon I think. I'm not too knowledgeable about availability in the US, I'm from the UK.