Skip to content

Instantly share code, notes, and snippets.

@iflove
Last active July 28, 2022 12:08
Show Gist options
  • Save iflove/727a0f4d92ecd1f07abc807b01194223 to your computer and use it in GitHub Desktop.
Save iflove/727a0f4d92ecd1f07abc807b01194223 to your computer and use it in GitHub Desktop.
Android应用日常异常日志收录
Android应用日常异常日志收录
@iflove
Copy link
Author

iflove commented Jan 19, 2021

线程没停止又启动该线程 (启动前确保,之前的线程已停止了,不用重复调用start)

java.lang.IllegalThreadStateException: Thread already started
	at java.lang.Thread.checkNotStarted(Thread.java:871)
	at java.lang.Thread.start(Thread.java:1025)
	at cn.mashang.vscreen.logic.l.a(Unknown Source)
	at cn.mashang.vscreen.logic.l.handleMessage(Unknown Source)
	at android.os.Handler.dispatchMessage(Handler.java:98)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:5001)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:801)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:617)
	at dalvik.system.NativeStart.main(Native Method)

@iflove
Copy link
Author

iflove commented Jan 19, 2021

进程被销毁时,启动服务Service (只能被迫接受了,try catch)

Caused by: java.lang.SecurityException: Unable to start service Intent { cmp=cn.mashang.vscreen.base/cn.mashang.vscreen.logic.services.VSCoreService }: Unable to launch app cn.mashang.vscreen.base/10047 for service Intent { cmp=cn.mashang.vscreen.base/cn.mashang.vscreen.logic.services.VSCoreService }: process is bad
	at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1738)
	at android.app.ContextImpl.startService(ContextImpl.java:1711)
	at android.content.ContextWrapper.startService(ContextWrapper.java:516)
	at cn.mashang.groups.MGApp.qg(MGApp.java:3)
	at cn.mashang.groups.MGApp.qf(MGApp.java:1)
	at cn.mashang.groups.MGApp.import(MGApp.java:2)
	at cn.mashang.groups.ui.base.MGBaseFragmentActivity.onCreate(MGBaseFragmentActivity.java:7)
	at cn.mashang.vscreen.ui.base.VSBaseFragmentActivity.onCreate(VSBaseFragmentActivity.java:3)
	at cn.mashang.vscreen.ui.VSGetRfidActivity.onCreate(VSGetRfidActivity.java:1)
	at cn.mashang.vscreen.ui.VSStart.onCreate(VSStart.java:1)
	at android.app.Activity.performCreate(Activity.java:6324)
	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)

解决代码
ComponentHelper.java

    private static final String TAG = "ComponentHelper";

    public static void startService(Context context, Intent service) {
        try {
            context.startService(service);
        } catch (SecurityException e) {
            e.printStackTrace();
            //解决Unable to start service Intent {xx} process is bad 【 抛出源为ActivityManagerService.getContentProviderImpl,就是程序发生异常闪退了,进程挂了,这时为后台应用,就安静接受失败吧】
            Logg.w(TAG, "startService silently fail");
        }
    }

@iflove
Copy link
Author

iflove commented Jan 19, 2021

触摸点异常,对相应的View的onTouchEvent 事件捕获异常即可,不过要注意返回值

java.lang.IllegalArgumentException: pointerIndex out of range
	at android.view.MotionEvent.nativeGetAxisValue(Native Method)
	at android.view.MotionEvent.getX(MotionEvent.java:2122)
	at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:9)
	at cn.mashang.vscreen.ui.view.BannersViewPager.onTouchEvent(BannersViewPager.java:1)
	at android.view.View.dispatchTouchEvent(View.java:10023)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2626)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2307)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:545)
	at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1811)
	at android.app.Activity.dispatchTouchEvent(Activity.java:3091)
	at cn.mashang.vscreen.ui.VSStart.dispatchTouchEvent(VSStart.java:9)
	at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:507)
	at android.view.View.dispatchPointerEvent(View.java:10243)
	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4438)
	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4306)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6247)
	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6221)
	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6182)
	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6350)
	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
	at android.os.MessageQueue.nativePollOnce(Native Method)
	at android.os.MessageQueue.next(MessageQueue.java:323)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:6141)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)

修复Code

@Override
    public boolean onTouchEvent(MotionEvent ev) {
        boolean ret = false;
        try {
            ret = super.onTouchEvent(ev);
            checkIfCallback();
        } catch (IllegalArgumentException e) {
            Log.error(TAG, "onTouchEvent ", e);
            if (BuildConfig.DEBUG) {
                throw e;
            }
        }
        return ret;
    }

@iflove
Copy link
Author

iflove commented Jan 19, 2021

线程无法创建,原因资源泄露:内存、fd、线程不释放等

java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again
	at java.lang.Thread.nativeCreate(Native Method)
	at java.lang.Thread.start(Thread.java:730)
	at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:941)
	at java.util.concurrent.ThreadPoolExecutor.ensurePrestart(ThreadPoolExecutor.java:1582)
	at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:313)
	at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:533)
	at java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:625)
	at okhttp3.internal.http2.Http2Connection$ReaderRunnable.applyAndAckSettings(Http2Connection.java:1)
	at okhttp3.internal.http2.Http2Connection$ReaderRunnable.settings(Http2Connection.java:5)
	at okhttp3.internal.http2.Http2Reader.readSettings(Http2Reader.java:11)
	at okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.java:13)
	at okhttp3.internal.http2.Http2Reader.readConnectionPreface(Http2Reader.java:2)
	at okhttp3.internal.http2.Http2Connection$ReaderRunnable.execute(Http2Connection.java:2)
	at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:3)
	at java.lang.Thread.run(Thread.java:761)

@iflove
Copy link
Author

iflove commented Jan 19, 2021

Android VideoView 内部错误

java.lang.IllegalStateException
	at android.media.MediaPlayer._reset(Native Method)
	at android.media.MediaPlayer.reset(MediaPlayer.java:1905)
	at android.widget.VideoView.release(VideoView.java:639)
	at android.widget.VideoView.-wrap1(VideoView.java)
	at android.widget.VideoView$7.surfaceDestroyed(VideoView.java:630)
	at android.view.SurfaceView.updateWindow(SurfaceView.java:588)
	at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:247)
	at android.view.View.dispatchDetachedFromWindow(View.java:15567)
	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3179)
	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3179)
	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3179)
	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:4715)
	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:4689)
	at android.view.ViewGroup.removeView(ViewGroup.java:4620)
	at android.support.v4.view.ViewPager.removeView(Unknown Source)
	at cn.mashang.vscreen.ui.fragment.l$e.destroyItem(Unknown Source)
	at android.support.v4.view.ViewPager.populate(Unknown Source)
	at android.support.v4.view.ViewPager.populate(Unknown Source)
	at android.support.v4.view.ViewPager$3.run(Unknown Source)
	at android.support.v4.view.ViewPager.completeScroll(Unknown Source)
	at android.support.v4.view.ViewPager.scrollToItem(Unknown Source)
	at android.support.v4.view.ViewPager.setCurrentItemInternal(Unknown Source)
	at android.support.v4.view.ViewPager.setCurrentItemInternal(Unknown Source)
	at android.support.v4.view.ViewPager.setCurrentItem(Unknown Source)
	at cn.mashang.vscreen.ui.fragment.l.a(Unknown Source)
	at cn.mashang.vscreen.ui.fragment.l.a(Unknown Source)
	at cn.mashang.vscreen.ui.k.onClick(Unknown Source)
	at android.view.View.performClick(View.java:5637)
	at android.view.View$PerformClick.run(View.java:22445)
	at android.os.Handler.handleCallback(Handler.java:755)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6141)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)

@iflove
Copy link
Author

iflove commented Jan 19, 2021

触控View时,对其移除,post 试试

java.lang.NullPointerException
	at android.view.ViewGroup.resetCancelNextUpFlag(ViewGroup.java:2011)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1957)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
	at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2187)
	at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1523)
	at android.app.Activity.dispatchTouchEvent(Activity.java:2468)
	at cn.mashang.vscreen.ui.VSStart.dispatchTouchEvent(VSStart.java:6)
	at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2135)
	at android.view.View.dispatchPointerEvent(View.java:7891)
	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4027)
	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3906)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3472)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3522)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3491)
	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3598)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3499)
	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3655)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3472)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3522)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3491)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3499)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3472)
	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5612)
	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5592)
	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5563)
	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5692)
	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
	at android.os.MessageQueue.nativePollOnce(Native Method)
	at android.os.MessageQueue.next(MessageQueue.java:138)
	at android.os.Looper.loop(Looper.java:123)
	at android.app.ActivityThread.main(ActivityThread.java:5001)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:801)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:617)
	at dalvik.system.NativeStart.main(Native Method)
java.lang.NullPointerException: Attempt to read from field 'int android.view.View.mPrivateFlags' on a null object reference
	at android.view.ViewGroup.resetCancelNextUpFlag(ViewGroup.java:2414)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2319)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
	at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:545)
	at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1811)
	at android.app.Activity.dispatchTouchEvent(Activity.java:3091)
	at cn.mashang.vscreen.ui.VSStart.dispatchTouchEvent(VSStart.java:6)
	at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:507)
	at android.view.View.dispatchPointerEvent(View.java:10243)
	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4438)
	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4306)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6247)
	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6221)
	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6182)
	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6350)
	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
	at android.os.MessageQueue.nativePollOnce(Native Method)
	at android.os.MessageQueue.next(MessageQueue.java:323)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:6141)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)

@iflove
Copy link
Author

iflove commented Apr 10, 2021

现象:使用kill 命令对进程杀死,以及闪退时杀掉进程时可能会出现
低内存日志
04-10 05:06:09.918   210   210 E lowmemorykiller: Error writing /proc/10077/oom_score_adj; errno=22  
04-10 05:06:09.918   210   210 E lowmemorykiller: Error writing /proc/10056/oom_score_adj; errno=22
04-10 05:06:09.937   210   210 E lowmemorykiller: Error writing /proc/10077/oom_score_adj; errno=22
Process : Sending signal. PID: 10209 SIG: 3


[Android Low Memory Killer](https://segmentfault.com/a/1190000021042098)
[LMK](https://lixiaogang03.github.io/2019/12/09/Android-LMK/)
[gityuan](http://gityuan.com/2016/09/17/android-lowmemorykiller/)
源码:lmkd.c : cmd_procprio(int pid, int uid, int oomadj) 
Process.java
390    public static final int SIGNAL_QUIT = 3;  
391    public static final int SIGNAL_KILL = 9;
392    public static final int SIGNAL_USR1 = 10;

目标进程Trace
Java
adb shell kill -3 [pid]     //方法1
Process.sendSignal(pid, Process.SIGNAL_QUIT)  //方法2
2) Native层
adb shell debuggerd -b [tid] //方法1
Debug.dumpNativeBacktraceToFile(pid, tracesPath) //方法2

因为:绝杀 kill -9 PID,同意的 kill -s SIGKILL,这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
这时应用杀死后延迟启动应用,导致向系统申请内存,系统并回收空进程,系统有可能触发 lowmemorykiller ,,导致主进程无法启动
因此使用am force-stop  终止程序更可靠

@iflove
Copy link
Author

iflove commented Apr 13, 2021

ANR

"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 obj=0x73d414a0 self=0xaef05400
  | sysTid=712 nice=-2 cgrp=default sched=0/0 handle=0xb1d29534
  | state=S schedstat=( 2330027277 539876163 5093 ) utm=181 stm=51 core=0 HZ=100
  | stack=0xbe2c6000-0xbe2c8000 stackSize=8MB
  | held mutexes=
  native: #00 pc 000487a4  /system/lib/libc.so (__epoll_pwait+20)
  native: #01 pc 0001a20d  /system/lib/libc.so (epoll_pwait+60)
  native: #02 pc 0001a23d  /system/lib/libc.so (epoll_wait+12)
  native: #03 pc 00011c83  /system/lib/libutils.so (_ZN7android6Looper9pollInnerEi+118)
  native: #04 pc 00011b7f  /system/lib/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+26)
  native: #05 pc 00093a7d  /system/lib/libandroid_runtime.so (_ZN7android18NativeMessageQueue8pollOnceEP7_JNIEnvP8_jobjecti+22)
  native: #06 pc 00bea00d  /data/dalvik-cache/arm/system@framework@boot.oat (Java_android_os_MessageQueue_nativePollOnce__JI+96)
  at android.os.MessageQueue.nativePollOnce(Native method)
  at android.os.MessageQueue.next(MessageQueue.java:323)
  at android.os.Looper.loop(Looper.java:136)
  at com.android.server.SystemServer.run(SystemServer.java:358)
  at com.android.server.SystemServer.main(SystemServer.java:225)
  at java.lang.reflect.Method.invoke!(Native method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)

"android.bg" prio=5 tid=10 Blocked
  | group="main" sCount=1 dsCount=0 obj=0x12c374c0 self=0xaef06800
  | sysTid=725 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0xad8c9920
  | state=S schedstat=( 1304135283 48631660395 2517 ) utm=43 stm=86 core=2 HZ=100
  | stack=0xad7c7000-0xad7c9000 stackSize=1038KB
  | held mutexes=
  at com.android.server.am.ActivityManagerService$3.handleMessage(ActivityManagerService.java:2473)
  - waiting to lock <0x0839e100> (a com.android.server.am.ActivityManagerService) held by thread 83
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:154)
  at android.os.HandlerThread.run(HandlerThread.java:61)

"ActivityManager" prio=5 tid=11 Blocked
  | group="main" sCount=1 dsCount=0 obj=0x12c1ad80 self=0xa514d000
  | sysTid=726 nice=-2 cgrp=default sched=0/0 handle=0xa7d6e920
  | state=S schedstat=( 343776114 470428314 1092 ) utm=25 stm=8 core=2 HZ=100
  | stack=0xa7c6c000-0xa7c6e000 stackSize=1038KB
  | held mutexes=
  at com.android.server.am.BroadcastQueue$BroadcastHandler.handleMessage(BroadcastQueue.java:175)
  - waiting to lock <0x0839e100> (a com.android.server.am.ActivityManagerService) held by thread 83
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:154)
  at android.os.HandlerThread.run(HandlerThread.java:61)
  at com.android.server.ServiceThread.run(ServiceThread.java:46)

"android.fg" prio=5 tid=16 Blocked
  | group="main" sCount=1 dsCount=0 obj=0x12d30740 self=0xa514e900
  | sysTid=731 nice=0 cgrp=default sched=0/0 handle=0x97efa920
  | state=S schedstat=( 22170751 33104750 245 ) utm=1 stm=0 core=0 HZ=100
  | stack=0x97df8000-0x97dfa000 stackSize=1038KB
  | held mutexes=
  at com.android.server.am.ActivityManagerService.monitor(ActivityManagerService.java:21988)
  - waiting to lock <0x0839e100> (a com.android.server.am.ActivityManagerService) held by thread 83
  at com.android.server.Watchdog$HandlerChecker.run(Watchdog.java:179)
  at android.os.Handler.handleCallback(Handler.java:755)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:154)
  at android.os.HandlerThread.run(HandlerThread.java:61)
  at com.android.server.ServiceThread.run(ServiceThread.java:46)

闪退信息
F/libc    ( 8585): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x26 in tid 9014 (.webank.com/...)
F/libc    (15708): Fatal signal 6 (SIGABRT), code -6 in tid

@iflove
Copy link
Author

iflove commented Apr 28, 2021

Fragment相关错误

Failure saving state: SelectGroupMembersFragment{4449c698 #6 id=0x7f080ba3} has target not in fragment manager: SelectGroupToViewMembersFragment{445eec38}

android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:16)

FragmentPagerAdapter 状态异常错误,升级AndroidX 最新Fragment组件

java.lang.IllegalStateException: Can't change container ID of fragment GroupImageThumbFragment{ea6a5ab id=0x2765 android:switcher:10087:2}: was 10085 now 10087
	at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:10)
	at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:3)
	at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:10)
	at n2.u.instantiateItem(MGFragmentPagerAdapter.java:8)
	at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:3)
	at android.support.v4.view.ViewPager.populate(ViewPager.java:46)
	at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:16)
	at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:1)
	at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:4)
	at cn.mashang.vscreen.ui.fragment.PagesThumbFragment.iR(PagesThumbFragment.java:5)
	at cn.mashang.vscreen.ui.fragment.PagesThumbFragment.handleMessage(PagesThumbFragment.java:4)
	at android.os.Handler.dispatchMessage(Handler.java:98)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6141)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)

@iflove
Copy link
Author

iflove commented Apr 29, 2021

GC

java.util.concurrent.TimeoutException
com.android.internal.os.BinderInternal$GcWatcher.finalize() timed out after 10 seconds

com.android.internal.os.BinderInternal$GcWatcher.finalize(BinderInternal.java:53)

该异常表示调用超时。
[解决方案]:一般是系统在gc时,调用对象的finalize超时导致,解决办法:
1.检查分析finalize的实现为什么耗时较高,修复它;
2.检查日志查看GC是否过于频繁,导致超时,减少内容开销,防止内存泄露。

@iflove
Copy link
Author

iflove commented Apr 29, 2021

window

# android.view.WindowManager$BadTokenException

Unable to add window -- token android.os.BinderProxy@df1d9ee is not valid; is your activity running?

Dialog的dismiss引发的崩溃


java.lang.IllegalArgumentException: View=DecorView@3cf51aa[BusyBox插件] not attached to window manager
        at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:473)
        at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:382)
        at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:124)
        at android.app.Dialog.dismissDialog(Dialog.java:370)
        at android.app.Dialog.-android_app_Dialog-mthref-0(Dialog.java:136)
        at android.app.Dialog$-void__init__android_content_Context_context_int_themeResId_boolean_createContextThemeWrapper_LambdaImpl0.run(Dialog.java)
        at android.os.Handler.handleCallback(Handler.java:755)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6141)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
		

@iflove
Copy link
Author

iflove commented Oct 27, 2021

弹窗show异常

    Caused by: android.view.InflateException: Binary XML file line #41: Error inflating class <unknown>
    Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:651)
        at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:724)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:792)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:867)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:870)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:519)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
        at android.app.ProgressDialog.onCreate(ProgressDialog.java:233)
        at android.app.Dialog.dispatchOnCreate(Dialog.java:407)
        at android.app.Dialog.show(Dialog.java:302)
        at cn.mashang.vscreen.ui.PadMain.logout(PadMain.java:1014)
        at cn.mashang.vscreen.ui.PadMain.onAutoLogoutTimeout(PadMain.java:987)
        at cn.mashang.vscreen.utils.AutoLogoutCountDownTimer.handleMessage(AutoLogoutCountDownTimer.java:153)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:201)
        at android.app.ActivityThread.main(ActivityThread.java:6810)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
     Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 6: TypedValue{t=0x2/d=0x101009b a=1}
        at android.content.res.TypedArray.getColorStateList(TypedArray.java:548)
        at android.widget.TextView.readTextAppearance(TextView.java:3572)
        at android.widget.TextView.<init>(TextView.java:941)
        at android.widget.TextView.<init>(TextView.java:886)
        at android.widget.TextView.<init>(TextView.java:882)
        at java.lang.reflect.Constructor.newInstance0(Native Method) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343) 
        at android.view.LayoutInflater.createView(LayoutInflater.java:651) 
        at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:724) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:792) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:867) 
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:870) 
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:519) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:427) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
        at android.app.ProgressDialog.onCreate(ProgressDialog.java:233) 
        at android.app.Dialog.dispatchOnCreate(Dialog.java:407) 
        at android.app.Dialog.show(Dialog.java:302) 
        at cn.mashang.vscreen.ui.PadMain.logout(PadMain.java:1014) 
        at cn.mashang.vscreen.ui.PadMain.onAutoLogoutTimeout(PadMain.java:987) 
        at cn.mashang.vscreen.utils.AutoLogoutCountDownTimer.handleMessage(AutoLogoutCountDownTimer.java:153) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:201) 
        at android.app.ActivityThread.main(ActivityThread.java:6810) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873) 

弹窗主题缺少一些属性:
TODO

@iflove
Copy link
Author

iflove commented Oct 31, 2021

申请内存时失败
java.lang.OutOfMemoryError: Failed to allocate a 12 byte allocation with 0 free bytes and 3GB until OOM

申请内存发生OutOfMemoryError,又捕获了OutOfMemoryError,值到no stack trace available
java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace available

@iflove
Copy link
Author

iflove commented Mar 3, 2022

系统发送崩溃, 原因未知

Process: cn.mashang.vscreen.base:crashDaemon, PID: 1090
java.lang.RuntimeException: Unable to create application cn.mashang.vscreen.VSApp: java.lang.NullPointerException
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4568)
	at android.app.ActivityThread.access$1500(ActivityThread.java:151)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
	at android.os.Handler.dispatchMessage(Handler.java:110)
	at android.os.Looper.loop(Looper.java:193)
	at android.app.ActivityThread.main(ActivityThread.java:5323)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
	at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
	at cn.mashang.groups.MGApp.J(MGApp.java:4)
	at cn.mashang.groups.MGApp.L(MGApp.java:2)
	at cn.mashang.vscreen.VSApp.import(VSApp.java:1)
	at cn.mashang.groups.MGApp.onCreate(MGApp.java:3)
	at cn.mashang.vscreen.VSApp.onCreate(VSApp.java:4)
	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4565)
	... 10 more
Error reporting crash
android.os.DeadObjectException
	at android.os.BinderProxy.transact(Native Method)
	at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:3845)
	at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:84)
	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
Error reporting crash
android.os.DeadObjectException
	at android.os.BinderProxy.transact(Native Method)
	at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:3845)
	at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:84)
	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
	at dalvik.system.NativeStart.main(Native Method)
FATAL EXCEPTION: ContactsProviderWorker
Process: android.process.acore, PID: 955
java.lang.NullPointerException
	at android.accounts.AccountManager.getAccounts(AccountManager.java:383)
	at com.android.providers.contacts.ContactsProvider2.performBackgroundTask(ContactsProvider2.java:1793)
	at com.android.providers.contacts.ContactsProvider2$2.handleMessage(ContactsProvider2.java:9988)
	at android.os.Handler.dispatchMessage(Handler.java:110)
	at android.os.Looper.loop(Looper.java:193)
	at android.os.HandlerThread.run(HandlerThread.java:61)
Error reporting crash
android.os.DeadObjectException
	at android.os.BinderProxy.transact(Native Method)
	at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:3845)
	at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:84)
	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
	at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
Failed to find provider info for com.android.contacts

@iflove
Copy link
Author

iflove commented Mar 3, 2022

内存泄露导致的系统的broadcast功能异常(向系统注册过多广播)

android.app.RemoteServiceException: can't deliver broadcast
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6141)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:913)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)

@iflove
Copy link
Author

iflove commented Apr 18, 2022

sqlite 相关错误收集, 可能磁盘空间不足,还有就是写入数据过程中突然掉电等。

database disk image is malformed

android.database.sqlite.SQLiteDiskIOException

android.database.sqlite.SQLiteCantOpenDatabaseException

android.database.sqlite.SQLiteDatabaseLockedException

@iflove
Copy link
Author

iflove commented Apr 19, 2022

fragment 官方组件缺陷 (项目中出现的viewpager+fragment自动切换,导致索引为-1,removeViewAt(-1))
issues

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.unFocus(android.view.View)' on a null object reference
        at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:3757)
        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3723)
        at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3697)
        at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3671)
        at android.app.ActivityThread.-wrap16(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1495)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6141)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.unFocus(android.view.View)' on a null object reference
        at android.view.ViewGroup.removeViewInternal(ViewGroup.java:4702)
        at android.view.ViewGroup.removeViewAt(ViewGroup.java:4665)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1796)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
        at androidx.fragment.app.FragmentManagerImpl.dispatchPause(FragmentManager.java:3245)
        at androidx.fragment.app.Fragment.performPause(Fragment.java:2641)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1512)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
        at androidx.fragment.app.FragmentManagerImpl.dispatchPause(FragmentManager.java:3245)
        at androidx.fragment.app.FragmentController.dispatchPause(FragmentController.java:234)
        at androidx.fragment.app.FragmentActivity.onPause(FragmentActivity.java:476)
        at cn.mashang.groups.ui.base.BaseFragmentActivity.onPause(BaseFragmentActivity.java:100)
        at cn.mashang.groups.ui.base.MGBaseFragmentActivity.onPause(MGBaseFragmentActivity.java:218)
        at cn.mashang.vscreen.ui.VSStart.onPause(VSStart.java:1952)
        at android.app.Activity.performPause(Activity.java:6849)
        at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1322)
        at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:3746)

@iflove
Copy link
Author

iflove commented Jul 8, 2022

fd 资源泄露 /proc/pid/fd

javax.net.ssl.SSLException: Unable to create application data
java.net.SocketException: Too many open files

@iflove
Copy link
Author

iflove commented Jul 8, 2022

断电Android 设备丢失数据

2022-02-14 16:39:02.115 3871-3871/cn.mashang.vscreen.base E/MMKV: <MMKV_IO.cpp:74::loadFromFile> file [/data/user/0/cn.mashang.vscreen.base/files/mmkv/mmkv_vs_default] not valid
2022-02-14 16:39:02.764 3871-3918/cn.mashang.vscreen.base E/SharedPreferencesImpl: Couldn't rename file /data/user/0/cn.mashang.vscreen.base/shared_prefs/default_v2.xml to backup file /data/user/0/cn.mashang.vscreen.base/shared_prefs/default_v2.xml.bak

@iflove
Copy link
Author

iflove commented Jul 8, 2022

模块implementation 引用 aar 文件打包, 采用compileOnly

Direct local .aar file dependencies are not supported when building an AAR.

@iflove
Copy link
Author

iflove commented Jul 11, 2022

放弃写Settings.System,改用Settings.Global保存共享数据。

java.lang.IllegalArgumentException: You cannot keep your settings in the secure settings.

@iflove
Copy link
Author

iflove commented Jul 11, 2022

是否转用了AndroidX

java.lang.IllegalArgumentException: Missing android.support.FILE_PROVIDER_PATHS meta-data

检查:

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="${applicationId}.provider"
    android:exported="false"
    android:grantUriPermissions="true">

    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>
        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />
        </provider>

@iflove
Copy link
Author

iflove commented Jul 11, 2022

原因未知

CrashReport: java.lang.RuntimeException: Unable to destroy activity {cn.mashang.vscreen.base/cn.mashang.vscreen.ui.VSStart}: java.lang.ClassCastException: android.view.ViewRootImpl cannot be cast to android.view.ViewGroup
        at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5105)
        at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5135)
        at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5427)
        at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5357)
        at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ClientTransactionHandler.executeTransaction(ClientTransactionHandler.java:58)
        at android.app.ActivityThread.handleRelaunchActivityLocally(ActivityThread.java:5410)
        at android.app.ActivityThread.access$3300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2076)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7660)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.ClassCastException: android.view.ViewRootImpl cannot be cast to android.view.ViewGroup
        at androidx.fragment.app.SpecialEffectsController$Operation$State.applyState(SpecialEffectsController.java:464)
        at androidx.fragment.app.SpecialEffectsController$1.run(SpecialEffectsController.java:211)
        at androidx.fragment.app.SpecialEffectsController$Operation.complete(SpecialEffectsController.java:713)
        at androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation.complete(SpecialEffectsController.java:770)
        at androidx.fragment.app.SpecialEffectsController$Operation.cancel(SpecialEffectsController.java:615)
        at androidx.fragment.app.SpecialEffectsController.forceCompleteAllOperations(SpecialEffectsController.java:350)
        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2844)
        at androidx.fragment.app.FragmentManager.dispatchDestroyView(FragmentManager.java:2812)
        at androidx.fragment.app.Fragment.performDestroyView(Fragment.java:3225)
        at androidx.fragment.app.FragmentStateManager.destroyFragmentView(FragmentStateManager.java:744)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:327)
        at androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation.complete(SpecialEffectsController.java:771)
        at androidx.fragment.app.SpecialEffectsController$Operation.cancel(SpecialEffectsController.java:615)
        at androidx.fragment.app.SpecialEffectsController.forceCompleteAllOperations(SpecialEffectsController.java:350)
        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2844)
        at androidx.fragment.app.FragmentManager.dispatchDestroy(FragmentManager.java:2820)
        at androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:345)
        at androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:306)
        at cn.mashang.groups.ui.base.BaseFragmentActivity.onDestroy(BaseFragmentActivity.java:161)
        at cn.mashang.groups.ui.base.MGBaseFragmentActivity.onDestroy(MGBaseFragmentActivity.java:180)
        at cn.mashang.vscreen.ui.VSGetRfidActivity.onDestroy(VSGetRfidActivity.java:452)
        at cn.mashang.vscreen.ui.VSStart.onDestroy(VSStart.java:2032)
        at android.app.Activity.performDestroy(Activity.java:8273)
        at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1344)
        at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5090)

源码出错点:

void applyState(@NonNull View view) { //view 是Fragment的根view,是oncreateView时赋值的,排查了ViewRootImpl  还是没搞明白
                switch (this) {
                    case REMOVED:
                        ViewGroup parent = (ViewGroup) view.getParent();   //ClassCastException

@iflove
Copy link
Author

iflove commented Jul 11, 2022

通过一个LazyAttachFragmentLayout 解决,RecycleView回收时间和fragment事务提交点碰合了. 不要在list.item 频繁操作fragment

java.lang.IllegalArgumentException: No view found for id 0xd3 (unknown) for fragment VsGonggeItemFragment{2be0e53} (4e43eaf2-29a8-4697-95d8-563b3c743a8e id=0xd3 tag=256:259:0:0)
	at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:513)
	at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
	at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
	at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1758)
	at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
	at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
	at android.os.Handler.handleCallback(Handler.java:755)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6141)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)

@iflove
Copy link
Author

iflove commented Jul 13, 2022

网络异常

OKHttp

java.net.ProtocolException: unexpected end of stream


okhttp3.internal.http1.Http1Codec.FixedLengthSink#close

原因是服务器流被关闭,可能原因:
(1) 在抛出java.net.ProtocolException: unexpected end of stream异常之后,确认一下fileLength和contentLength是否一致, 如果不一致的情况下, 可以设置Transfer-Encoding : chunked来躲过客户端的校验
(2) 针对一个资源或者同一个服务器的频繁请求,最好设置Connection : close,这样可以防止服务器出现反攻击的问题,服务器发现某短时间的请求过于频繁切长期保持长链接,会引发服务器的瘫痪,所以针对服务器的长链接请求会dismiss掉,导致当前请求异常。

@iflove
Copy link
Author

iflove commented Jul 13, 2022

安装apk

apk 解包时存储不够导致失败

D/InstallAppProgress: Installation error code: 1
INSTALL_FAILED_INSUFFICIENT_STORAGE

@iflove
Copy link
Author

iflove commented Jul 13, 2022

Choreographer 未知错误

java.lang.NullPointerException

Attempt to invoke virtual method 'android.view.DisplayListCanvas android.view.RenderNode.start(int, int)' on a null object reference
android.view.ViewRootImpl.draw(ViewRootImpl.java:2800)
android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2608)
android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2215)
android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6338)
android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
android.view.Choreographer.doCallbacks(Choreographer.java:686)
android.view.Choreographer.doFrame(Choreographer.java:621)
android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
android.os.Handler.handleCallback(Handler.java:755)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:154)
android.app.ActivityThread.main(ActivityThread.java:6141)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment