Recently my app on Google Play Store get a lot of NPE of DeviceMotionService. Following is the stack:
java.lang.NullPointerException
at android.webkit.DeviceMotionService$2.run(DeviceMotionService.java:103)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:1067)
at java.lang.Thread.run(Thread.java:856)
I have no clue about this issue. I did use WebView in my app. But I checked source code. It seems a deep function in android framework/webkit.
Related
Our app gets lots NullPointerException in DeviceMotionService. We don't have WebView in our app, it seems it is related with Admob SDK. How can I workaround the problem to prevent crashes?
java.lang.NullPointerException
at android.webkit.DeviceMotionService$2.run(DeviceMotionService.java:103)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:734)
at java.lang.Thread.run(Thread.java:856)
Here is Google Groups discussion about the crashes
I'm using the YouTubePlayerSupportFragment from the current sdk (v.1.0.0) to integrate YouTube videos. Usually videos play just fine, but on some devices YouTube crashes when playing live videos (and only live videos). My App doesn't crash or ANR, but nothing happens and I get a little popup to report the YouTube crash.
I added some listeners to the YouTubePlayer and it happens after onLoad().
If i don't cue or load the video, nothing happens.
Here's the LogCat output:
09-19 19:44:25.949 10217-10217/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.IllegalStateException: In application's main thread
at m.b(PG:146)
at dxk.a(PG:77)
at dxn.a(PG:45)
at dnf.a(PG:48)
at dnh.a(PG:233)
at dfm.onResponse(PG:71)
at dnt.a(PG:48)
at lo.run(PG:99)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
tested on: ASUS MeMOPad HD ME173X
any help is appreciated.
P.S.
I found this bug report:
https://code.google.com/p/gdata-issues/issues/detail?id=6644
Problem was related to the official Youtube app version 5.10.1.5 (version code 51001051). Update 5.10.3.5 fixed this issue.
I'm using this snippet to check if an update is needed and get a localised prompt if necessary:
private static final int REQ_CODE_UPDATE_YOUTUBE = 1;
...
if (YouTubeIntents.getInstalledYouTubeVersionCode(getActivity()) == 51001051) {
// this specific youtube version crashed when cueing live videos
// versions above and below should be fine
YouTubeInitializationResult.SERVICE_VERSION_UPDATE_REQUIRED.getErrorDialog(getActivity(),
REQ_CODE_UPDATE_YOUTUBE).show();
}
I published an Android application that uses ACRA for crash reporting. Now I got a strange crash report:
java.lang.NullPointerException
at android.webkit.WebViewClassic.setBaseLayer(WebViewClassic.java:5377)
at android.webkit.WebViewClassic.setNewPicture(WebViewClassic.java:10781)
at android.webkit.WebViewClassic$PrivateHandler.handleMessage(WebViewClassic.java:10012)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
at dalvik.system.NativeStart.main(Native Method)
The report was sent from a Samsung Galaxy S3 (GT-I9300) running Android 4.1.1. The report is strange (from my point of view) because my app doesn't use a WebView (no display of web pages in the whole app, no HTML handling at all). Furthermore the stack trace doesn't include any of my packages. Certainly I cannot reproduce the crash.
Has anybody else encountered this (or a very similar) stack trace? Why is this exception thrown? And what can I do to avoid the exception? Any help is really appreciated.
This can be caused due to use of external ad networks that may use WebViews. This is a problem that needs to be addressed by the ad network maintainers. Apart from bringing it their attention, there is really nothing you can do about this short of removing the offending providers' ads from your application.
We recently introduced OAuth login in our app. This means using a WebView to authenticate the user, and an AsyncTask to do necessary REST calls afterwards.
Unfortunately, after introducing this login method, we're getting reports of the app force closing. This seems to be related to other AsyncTasks that are executed after the login, but the stack traces does unfortunately not tell us much:
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3100)
at android.view.View.performClick(View.java:3627)
at android.view.View$PerformClick.run(View.java:14329)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4511)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.view.View$1.onClick(View.java:3095)
... 11 more
Caused by: java.lang.NoClassDefFoundError: android/os/AsyncTask
at com.foo.bar.TransmissionActivity.transmit(TransmissionActivity.java:44)
... 14 more
We managed to fix the error above by using RoboAsyncTask (from RoboGuice), instead of AsyncTask from the Android SDK, but we have other activities that use WebViews. WebView apparently uses AsyncTask somewhere in its call stack, and errors similar the one shown above (Caused by: java.lang.NoClassDefFoundError: android/os/AsyncTask) have started to show in our error logs.
The error happens on different devices, and different Android versions, with no apparent pattern. We have tried to reproduce the error ourselves, without any luck.
Any ideas?
It might be an issue with the build setup. (Build order of src/gen has been known to cause some issues, the libs folder for the compat library being called lib has caused some issues for me on new sdk versions).
To see if it is create a new project (in eclipse, since that's 100% android official). Add a webview and an asynctask and then do a diff on the project with your project. Ignoring src/gen/res. Hopefully you'll find that the src/gen are built in the wrong order or something like that.
~ Anders
I have an android app on Google Play and occasionally get the following error reported through the developer console / ACRA. The app runs fine on my test devices and on the various AVDs that I test it on.
The stack trace doesn't state where in the app the problem is. Is there anything I can do to narrow down where to look? What generally causes the error?
java.lang.IndexOutOfBoundsException
at android.graphics.Paint.native_measureText(Native Method)
at android.graphics.Paint.measureText(Paint.java:1020)
at android.graphics.Paint.measureText(Paint.java:1057)
at android.text.Styled.drawDirectionalRun(Styled.java:267)
at android.text.Styled.measureText(Styled.java:430)
at android.text.Layout.measureText(Layout.java:1518)
at android.text.Layout.getHorizontal(Layout.java:564)
at android.text.Layout.getHorizontal(Layout.java:548)
at android.text.Layout.getPrimaryHorizontal(Layout.java:533)
at android.widget.TextView$QuickAction.getBound(TextView.java:9550)
at android.widget.TextView$QuickAction.show(TextView.java:9604)
at android.widget.TextView$QuickActionController.show(TextView.java:8846)
at android.widget.TextView.performLongClick(TextView.java:8033)
at android.view.View$CheckForLongPress.run(View.java:9096)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller
.run(ZygoteInit.java:895)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653)
at dalvik.system.NativeStart.main(Native Method)
From the look of this, you have a race in your application initialization block. Probably one of your text resources is not fully inflated before a draw is issued. (i know, the model of the android runtime should prevent this, but if this happens when the layout is calculated, it would be plausible).
Hope this is of some help in narrowing it down.