I use MUPDF to view pdf files in an Android app. The app works fine with Samsung s6 and Nexus 5 (Android 5.x). However when using Samsung S3 (Android 4.3), it just breaks without saying anything in the debugger "the app just disappears without saying any". Is that regarding MUPDF lib? I know this lib has compiled native code. As it is a legacy code and I have to deal with it, what could be the approach to solve such issue?
Thanks.
Check the Android logcat output when the app dies, that should reveal what is happening. You may need to run the app outside the debugger to get the full logcat output. If you can get this, please edit your question to add the output.
Depending on which debugger you're using, you may need to explicitly enable native debugging if you haven't already.
MuPDF isn't legacy code, its continuously being developed. I'd suggest you open a bug report, that way you stand some chance of informed people being able to help you.
Related
I am building an Android app for my company, using Android Studio 1.5.1 . I've discovered that the app won't work on some Galaxy S5 phones.
These phones just show a white screen when the app runs.
This error happens on Galaxy S5 devices with Android version 5.1.1 But not on an Galaxy S5 Device running Android version 5.0
I'm focusing on the Android Version as a clue to solving this bug.
I can't actually get one of the devices so I've created several Virtual Devices. There are 6 Downloadable system images of Android 5.1.1 in Android Studio's Virtual Device Configuration wizard. I've installed all of them. none replicate this white screen error.
What else can I do to uncover this bug?
If it helps answer my question, my app relies heavily on server communication. The whole app is just one Webview with a few html & JS files.
The problem with emulators is that they are not reproducing actual device behaviour(especially, once many OEMs like Samsung tend to customise Android based on their needs), so I'm afraid the only options you have are:
Get Samsung Galaxy S5 with 5.1.1
Apart from obvious ideas "go to shop and buy", I can recommend you:
to take a look at Open Device Lab. It operates around the world and there's an arguably good chance to find the device you need there;
build a pool of alpha-beta users you can talk to and share new builds. Google Play has quite rich functionality in this area. Samsung S5 is quite common model, so it shouldn't be a problem to find people with it. If your product is "public", you can try to find beta-users on services like BetaBound or just among your social media network;
Use Analytics tools to collect more data from affected devices and act based on the information you get
There're dozens of different frameworks for accomplishing it. I can suggest Crittercism as a super powerful and comprehensive tool. In particular, I'd definitely log:
All handled exceptions
Add breadcrumbs (short string to capture app run-time information) to all Activity/Fragment lifecycle methods, to Application's methods (as white screen on start might mean some issues there), to all meaningful async tasks, etc.
If app gets into suspicion state - log it as a handled exception, so you can see the whole trail of breadcrumbs and track history of exceptions for the user. Unfortunately, you won't get trail of breadcrumbs, before something has been logged as an issue (crash or exception). There're frameworks, which log everything, like MixPanel, for example, but I honestly think that Crittercism suits much more here)
Crittercism will also catch & report all crashes happen in the app and
The Get Started Guide is here and it's pretty straightforward: http://docs.crittercism.com/android/android.html
Saying that, I'd suggest you to integrate some analytics anyway, as it'll help you in the future and to try to get affected phone in hands for test.
I guess the culprit is webview. Can you check the webview version on which the issue is reproducible.
To check the version you need to go to settings->Application Manager-> Downloaded Apps-> check "Android System Webview"version
We had a similar issue when the screen used to go blank and it used to happen only on particular version of webview. The issue was fixed by Google later.
The chromium webview layer is now updatable from Google Play.
For more details refer-http://developer.android.com/about/versions/lollipop.html#WebView
I assume you are building a hybrid app.
If the webview is the culprit, you could try crosswalk.
It adds Mb's to your app but it makes sure every device uses the same webview (latest chromium). Moreover rendering differences etc are also minimized.
if you are using cordova run: cordova plugin add cordova-plugin-crosswalk-webview and that's it.
If you implement this and the whitescreen problem is gone, you debugged it in a sherlock holmish deduction way...
The problem is not with emulator. It is with WebView in Android versions 5.1 onward.
Try
uninstalling the updates for "Android system webview" app (go to
settings and look for it under "downloaded") it works just fine!
Source - similar question
I have this Phonegap application I'm working. Unfortunately, I having problems pertaining to a particular feature at the moment. I tried deploying on any iOS device, the error is present. Though by default, we programmers, should solve this problem right away. But I was wondering how I could see console.logs("..."); on Android.
I've search for related answers regarding this. Most of the answers mostly suggests I should use WebInspector using jshybugger. That won't be a problem unless I will be building the project on a level below API L19 (Kitkat) and maybe as low as API L10 (Gingerbread).
Using the AVD emulator was also a suggestion, yet I can't find a way to boot the emulator properly on my computer. And as we all know, Android Emulator is a hell of a snail compared to iOS Simulator.
Unlike for iOS I could just use the Safari Device Inspector to view the console logs and resources. I was hoping for a similar feature without using jshybugger and can be supported by at most Android API L10?
console.log should appear on the adb, you can see it on eclipse or on android monitor (monitor comes with the android sdk)
Or you can use this online debugger, it creates a javascript script that you put in your index and then you can see your phone debugger there. You can do it locally too using weinre
I am trying to import an Android native app into the BB OS 10 but while configuring the Simulator it's not detecting it; I searched Google but was not able to find the solution.
Please let me know how to add the simulator to Eclipse and also, I run the VMWare Player but while playing I am getting
Error recovering the memory
Thanks in advance.
Have a stroll round the official BlackBerry Android micro-site - repackaging information is included there.
http://developer.blackberry.com/android/
You can deploy to a Simulator, though to be honest, it is easier to deploy to a phone (if you have one).
I have not had a memory problem running a Simulator. Be aware that you start up your VM Player, and then open the Simulator VM within that. This you should be able to do independently of anything else you are working on (like Eclipse).
I suspect the android forum will help with other questions you might have:
http://supportforums.blackberry.com/t5/Android-Runtime-Development/bd-p/adt
As my title, i need to know whether a file contains all the crash report in android. Let me explain in detail. In iphone developer can take all crash reports in iphone application by synchronizing the device into system in the specific directory in Mac.All the crash reports are stored in directory with the individual device name.
Likewise i need to get all the crash report for android device. As i googled, i got some suggestion as using ACRA we can get the crash report in Google Doc or as email.
Is there a single way to get crash report or any other way to get it? If so please guide to get the crash report. i'm in running out of time.
See the rrainn answer here Get crash data (stack traces at least) from my Android application?
You can get the crash report at any particular location you desired on SD card, you can send to server as well if you need
I am encountering the same issue as well on a Galaxy Note S2 running Jellybean 4.1.2. My Gingerbread and ICS test devices work fine. I also saw this post indicating that issue is related to some CSS handling bugs in Webkit in some versions:
http://css-tricks.com/crashing-mobile-webkit/
In my case adding a single input control or button is enough to reliably trigger the issue.
Your post and links have been very helpful. I'm going to see if I can't strip down my CSS to mitigate the bug.
I'm building my first backbone.js app, and was a bit disappointed with the performance in chrome, but figured I'd optimize when I got further along.
I just tried viewing the app on my tablet (touchpad running android 2.3.7), and I don't get ANY of the javascript elements loading. I don't know if this is because of a bug, or maybe my backbone files are too large??
Any idea what would cause this, and how I would go about debugging?
The console on the desktop shows no errors.
apparently you can use console on android as well with a certain tool called logcat
you can find more information on this link:
http://developer.android.com/guide/webapps/debugging.html
You could try to use WEINRE.
The setup might be kind of a challenge, but when it works, it does work great.
It gives you the webkit inspector on your computer screen, live connected to the app on your device.
Jonathan Stark gives a nice intro in this video: http://www.youtube.com/watch?v=4nL6xey13fE
Edit: If you don't like weinre, you could always use RIM's RIPPLE.
Ripple emulates most devices' mobile browsers. I don't really like it though because the ux-emulation you get is often way of the real thing.