After filling the application in Google Play for beta testing began to notice that people with Android 4.4 and a virtual machine ART application simply can not run. Is it possible to somehow add support for this virtual machine?
The ART virtual machine should simply run your app without errors; you don't specifically need to "add" support for it. If it has bugs that prevent your app from working (or your app has bugs that are only exposed by ART), then you'll need to get an Android 4.4 device and test it out. There are instructions here: https://android.stackexchange.com/questions/56773/dalvik-vm-vs-art-android-runtime-for-endusers on how to enable it.
ART is in experimental preview exactly so that developers can try it out and make sure there are no issues preventing their app from working before it's enabled by default for all users in a future Android release.
If you suspect it's an ART bug that's keeping your app from working, file a bug at https://code.google.com/p/android/issues/entry and provide complete details on how to reproduce. It would be most helpful if you could narrow down the problem to what ART's specifically doing wrong instead of just filing a bug that says "my app doesn't work".
Related
I am working on a Unity project, and I want to export it on Android, and WebGL. For stability purposes I have to use the profiler provided by Unity, and I managed to make it work with an APK version of my project, running on an Android device. But when I want to export my app on WebGL, it freezes on the first frame, and then stops my web browser.
I checked the checkbox for the profiler to be connected to launch, but nothing seems to be happening on it, and I think it's not working at all...
Have you ever experienced this kind of problem? And how did you manage to solve it?
I have already tried to use the Firefox profiler, but it doesn't work like I was expecting (the Unity profiler is more useful regarding the different processes like GPU CPU Audio etc...)
The version of Unity I am currently using is "Unity_2020.2.4f1"
Can you try running your WebGL version on google chrome?
if you run this app on chrome, you can check the issue on the chrome console.
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 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 need to reproduce a bug that I think is on devices running Android 2.1-update1. The emulator options exist for 2.1 but I don't see option for update 1? It is important to be able to test for all device scenarios, so i need to know how to create AVD for a specific update.
You cannot get the emulator to match exactly devices, you can only test against "vanilla" Android releases from Google.
Unless you can get images from the device manufacturer or source code for the kernel (which you should be able to find or request) and of the Android framework (which will be quite more challenging to obtain) that you can recompile and generate the proper images, then you are out of luck.
INHO, the emulator is really a great tool to help you develop applications, but it does not replace a real device when it comes to testing.