Last active
July 28, 2022 12:08
-
-
Save iflove/727a0f4d92ecd1f07abc807b01194223 to your computer and use it in GitHub Desktop.
Android应用日常异常日志收录
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Android应用日常异常日志收录 |
是否转用了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>
原因未知
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
通过一个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)
网络异常
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掉,导致当前请求异常。
安装apk
apk 解包时存储不够导致失败
D/InstallAppProgress: Installation error code: 1
INSTALL_FAILED_INSUFFICIENT_STORAGE
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
放弃写Settings.System,改用Settings.Global保存共享数据。