Pra*_*arg 6 android nfc android-service ndef deadobjectexception
我们使用 NFC 标签作为进出的停车票。在每个入口处,标签上都会写入一些数据,而在出口处,该数据会验证车辆的出口。
\n\n部分车辆进出后,NfcService失效,智能手机无法检测到NFC标签。设备需要重新启动才能重新启动 NfcService,然后设备再次开始正常工作。
\n\n此错误是随机出现的,我们无法在开发环境中重现此错误,但我们在停车场出入口安装的设备上多次观察到此问题。
\n\n\n\n当我们调试这个问题时,我们能够以某种方式管理上述日志。
\n\n我们尝试了不同的更改,例如使用enableReaderMode而不是enableForegroundDispatch,但问题仍然存在。
public void enableReaderMode() {\n try {\n Log.d("WTF", "Enabling reader mode");\n NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this);\n\n if (nfc != null) {\n int flags = NfcAdapter.FLAG_READER_NFC_A ;\n\n nfc.enableReaderMode(this, new NfcAdapter.ReaderCallback() {\n @Override\n public void onTagDiscovered(Tag tag) {\n runOnUiThread(new Runnable() {\n @Override\n public void run() {\n Log.d("WTF", "Tag discovered");\n String uid = ByteArrayToHexString(tag.getId());\n Toast.makeText(MainActivity.this, getString(R.string.message_tag_detected), Toast.LENGTH_SHORT).show();\n Ndef ndef = Ndef.get(tag);\n\n if (isNFCDialogDisplayed) {\n\n if (isWrite) {\n\n mNfcWriteFragment = (NFCWriteFragment) getFragmentManager().findFragmentByTag(NFCWriteFragment.TAG);\n mNfcWriteFragment.onNfcDetected(ndef, uid);\n\n } else {\n\n mNfcReadFragment = (NFCReadFragment) getFragmentManager().findFragmentByTag(NFCReadFragment.TAG);\n mNfcReadFragment.onNfcDetected(ndef, uid);\n }\n }\n }\n });\n\n }\n }, flags, null);\n\n }\n\n }catch (Exception e){\n Crashlytics.logException(e);\n }\n}\n\npublic void disableReaderMode() {\n try {\n Log.d("WTF", "Disabling reader mode");\n NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this);\n if (nfc != null) {\n nfc.disableReaderMode(this);\n }\n }catch (Exception e){\n Crashlytics.logException(e);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\nNFCWriteFragment 和 NFCReadFragment 在内部读取 NDEF 数据并将其写入标签。
\n\nStackOverflow 上的类似问题:
\n\nenableReadeMode()和时,活动始终处于活动状态并可见disableReaderMode()将代码从 onResume 移开,因此当调用enableReadeMode()和时,活动始终处于活动状态并可见disableReaderMode()
这是新的日志
\n\n\n04-15 01:51:50.328 4987-4987/in.parksmart.operator D/WindowClient: 添加到 mViews: com.android.internal.policy.PhoneWindow$DecorView{55c53ae VE..... R...... 。我。0,0-0,0},这= android.view.WindowManagerGlobal@ff3d558\n04-15 01:51:50.329 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9cafb800\n04-15 01: 51:50.330 4987-4987/in.parksmart.operator D/ViewRootImpl: 启用硬件加速, this = ViewRoot{7de1f47 in.parksmart.operator/in.parksmart.operator.MainActivity,ident = 133}\n04-15 01: 51:50.354 4987-4987/in.parksmart.operator D/Surface: Surface::allocateBuffers(this=0x9de38200)\n04-15 01:51:50.360 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9cafb800 初始化窗口=0x9de38208,标题=in.parksmart.operator/in.parksmart.operator.MainActivity\n04-15 01:51:50.360 4987-5037/in.parksmart.operator D/Surface: Surface::connect(this= 0x9de38200,api=1)\n04-15 01:51:50.361 4987-5037/in.parksmart.operator W/libEGL: [ANDROID_RECORDABLE] 格式: 1\n04-15 01:51:50.361 4987-5037/in.parksmart .operator D/Surface: Surface::setBufferCount(this=0x9de38200,bufferCount=4)\n04-15 01:51:50.366 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器,句柄(0x9c9cd8e0) (w: 656 h:497 s:656 f:0x1 u:0x000f02)\n04-15 01:51:51.181 4987-4999/in.parksmart.operator D/WTF: 禁用读卡器模式\n04-15 01:51:51.182 4987- 4999/in.parksmart.operator D/WTF\xc2\xa0:\xc2\xa0NFC: 不兼容标签\n04-15 01:51:51.218 4987-5037/in.parksmart.operator D/Surface: Surface::disconnect(this =0x9de38200,api=1)\n04-15 01:51:51.218 4987-5037/in.parksmart.operator D/GraphicBuffer: 注销,句柄(0x9c9cd8e0) (w:656 h:497 s:656 f:0x1 u: 0x000f02)\n04-15 01:51:51.220 4987-5037/in.parksmart.operator D/Surface: 表面::断开(this=0x9de38200,api=1)\n04-15 01:51:51.220 4987-5037/ in.parksmart.operator D/Surface: Surface::connect(this=0x9de38200,api=1)\n04-15 01:51:51.221 4987-5037/in.parksmart.operator W/libEGL: [ANDROID_RECORDABLE] 格式: 1 \n04-15 01:51:51.221 4987-5037/in.parksmart.operator D/Surface: Surface::setBufferCount(this=0x9de38200,bufferCount=4)\n04-15 01:51:51.224 4987-5037/in。 parksmart.operator D/GraphicBuffer:寄存器,句柄(0x9c9cd8e0) (w:584 h:593 s:592 f:0x1 u:0x000f02)\n04-15 01:51:51.432 4987-5077/in.parksmart.operator D/ NativeCrypto:ssl=0xaa571900 sslWrite buf=0x9da11aa0 len=7 write_timeout_millis=0\n04-15 01:51:51.432 4987-5077/in.parksmart.operator D/NativeCrypto:sslNotify,appData=0xaf928a00 ret=1\ N04-15 01 :51:51.459 4987-5052/in.parksmart.operator D/NativeCrypto: sslSelect, appData=0xaf928a00 由令牌唤醒\n04-15 01:51:51.459 4987-5052/in.parksmart.operator D/NativeCrypto: sslSelect , appData=0xaf928a00 读取 ret=1 \n04-15 01:51:51.459 4987-5052/in.parksmart.operator D/NativeCrypto: sslSelect, appData=0xaf928a00 由令牌唤醒\n04-15 01:51:51.459 4987 -5052/in.parksmart.operator D/NativeCrypto:sslSelect,appData=0xaf928a00 读取 ret=1 \n04-15 01:51:54.335 4987-5037/in.parksmart.operator D/GraphicBuffer:0x000f02)\n04-15 01:51:56.966 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器,句柄(0x9d971610) (w:584 h:593 s:592 f:0x1 u:0x000f02)\n04- 15 01:51:57.023 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器,句柄(0x9c9cd8e0) (w:584 h:593 s:592 f:0x1 u:0x000f02)\n04-15 01:51: 57.118 4987-4987/in.parksmart.operator D/SettingsInterface:来自设置缓存,名称 = sound_effects_enabled,值 = 0\n04-15 01:51:57.119 4987-4987/in.parksmart.operator D/WTF:启用阅读器模式\n04-15 01:52:05.451 4987-4987/in.parksmart.operator E/NFC: NFC 服务失效 - 尝试恢复\n android.os.DeadObjectException\n 位于 android.os.BinderProxy.transactNative(本机方法) \n 在 android.os.BinderProxy.transact(Binder.java:511)\n 在 android.nfc.INfcAdapter$Stub$Proxy.setReaderMode(INfcAdapter.java:614)\n 在 android.nfc.NfcActivityManager.setReaderMode(NfcActivityManager) .java:241)\n 在 android.nfc.NfcActivityManager.enableReaderMode(NfcActivityManager.java:217)\n 在 android.nfc.NfcAdapter.enableReaderMode(NfcAdapter.java:1299)\n 在 in.parksmart.operator.NFCReadFragment。 enableReaderMode(NFCReadFragment.java:131)\n 在 in.parksmart.operator.NFCReadFragment$1.onClick(NFCReadFragment.java:100)\n 在 android.view.View.performClick(View.java:5265)\n 在 android. view.View$PerformClick.run(View.java:21534)\n 在 android.os.Handler.handleCallback(Handler.java:815)\n 在 android.os.Handler.dispatchMessage(Handler.java:104)\n在 android.os.Looper.loop(Looper.java:207)\n 在 android.app.ActivityThread.main(ActivityThread.java:5728)\n 在 java.lang.reflect.Method.invoke(本机方法)\n在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)\n 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)\n04-15 01:52: 05.452 4987-4987/in.parksmart.operator E/NFC:在服务恢复期间无法检索 NFC 服务\n04-15 01:52:05.454 4987-4987/in.parksmart.operator I/Choreographer:跳过 432 帧!应用程序可能在其主线程上执行过多工作。\n04-15 01:52:05.473 4987-5037/in.parksmart.operator D/Surface: Surface::disconnect(this=0x9de38200,api=1)\n04 -15 01:52:05.473 4987-5037/in.parksmart.operator D/GraphicBuffer: 注销,句柄(0x9d971680) (w:584 h:593 s:592 f:0x1 u:0x000f02)\n04-15 01:52 :05.474 4987-5037/in.parksmart.operator D/GraphicBuffer:取消注册,句柄(0x9d971610)(w:584 h:593 s:592 f:0x1 u:0x000f02)\ n04-15 01:52:05.475 4987-5037 /in.parksmart.operator D/GraphicBuffer:取消注册,句柄(0x9c9cd8e0) (w:584 h:593 s:592 f:0x1 u:0x000f02)\n04-15 01:52:05.477 4987-5037/in.parksmart。运算符 D/Surface: Surface::disconnect(this=0x9de38200,api=1)\n04-15 01:52:05.478 4987-5037/in.parksmart.operator D/Surface: Surface::connect(this=0x9de38200,api =1)\n04-15 01:52:05.480 4987-5037/in.parksmart.operator W/libEGL: [ANDROID_RECORDABLE] 格式: 1\n04-15 01:52:05.481 4987-5037/in.parksmart。[第 2925 章] View$PerformClick.run(View.java:21534)\n 在 android.os.Handler.handleCallback(Handler.java:815)\n 在 android.os.Handler.dispatchMessage(Handler.java:104)\n 在 android .os.Looper.loop(Looper.java:207)\n 在 android.app.ActivityThread.main(ActivityThread.java:5728)\n 在 java.lang.reflect.Method.invoke(Native Method)\n 在 com .android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)\n 位于 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)\n04-15 01:52:06.941 4987 -4987/in.parksmart.operator D/WindowClient:添加到mViews:com.android.internal.policy.PhoneWindow$DecorView{dcd6d0c VE.....R.....I。0,0-0,0},这= android.view.WindowManagerGlobal@ff3d558\n04-15 01:52:06.942 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800\n04-15 01: 52:06.943 4987-4987/in.parksmart.operator D/ViewRootImpl: 启用硬件加速, this = ViewRoot{5eeb4b3 in.parksmart.operator/in.parksmart.operator.MainActivity,ident = 134}\n04-15 01: 52:06.972 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800 初始化窗口=0x9de38208,title=in.parksmart.operator/in.parksmart.operator.MainActivity\n04-15 01:52:06.972 4987 -4987/in.parksmart.operator D/Surface: Surface::allocateBuffers(this=0x9de38200)\n04-15 01:52:06.972 4987-5037/in.parksmart.operator D/Surface: Surface::connect(this= 0x9de38200,api=1)\n04-15 01:52:06.975 4987-5037/in.parksmart.operator W/libEGL: [ANDROID_RECORDABLE] 格式: 1\n04-15 01:52:06.976 4987-5037/in.parksmart .operator D/Surface: Surface::setBufferCount(this=0x9de38200,bufferCount=4)\n04-15 01:52:06.980 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器,句柄(0x9c9cd8e0) (w: 812 h:400 s:816 f:0x1 u:0x000f02)\n04-15 01:52:07.008 4987-5037/in.parksmart.operator D/OpenGLRenderer:CacheTexture 4 上传:x, y, 宽度高度 = 0, 0 , 1024, 512\n04-15 01:52:07.025 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器, 句柄(0x9d974780) (w:812 h:400 s:816 f:0x1 u:0x000f02)\ n04-15 01:52:13.710 4987-5052/in.parksmart.operator D/NativeCrypto: ssl=0xaa571900 sslRead buf=0xaf907641 len=1,timeo=0\n04-15 01:52:13.710 4987-5052/in。 parksmart.operator D/NativeCrypto:ssl=0xaa571900 sslRead buf=0xaf917800 len=91,timeo=0\n04-15 01:52:13.711 4987-5052/in.parksmart.operator D/NativeCrypto:ssl=0xaa571900 ssl读取buf=0xaf907640 len=1,timeo=0\n04-15 01:52:13.722 4987-4987/in.parksmart.operator D/FBDB: 已删除子项\n04-15 01:52:13.729 4987-4987/in.parksmart.operator D /FBDB:已删除子项\n04-15 01:52:13.729 4987-4987/in.parksmart.operator D/FBDB:已删除子项\n PerformClick(View.java:5265)\n 在 android.view.View$PerformClick.run(View.java:21534)\n 在 android.os.Handler.handleCallback(Handler.java:815)\n 在 android.os .Handler.dispatchMessage(Handler.java:104)\n 在 android.os.Looper.loop(Looper.java:207)\n 在 android.app.ActivityThread.main(ActivityThread.java:5728)\n 在 java. lang.reflect.Method.invoke(本机方法)\n 位于 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)\n 位于 com.android.internal.os.ZygoteInit.main(ZygoteInit) .java:679)\n04-15 01:52:06.941 4987-4987/in.parksmart.operator D/WindowClient: 添加到 mViews: com.android.internal.policy.PhoneWindow$DecorView{dcd6d0c VE..... R.....I。0,0-0,0},这= android.view.WindowManagerGlobal@ff3d558\n04-15 01:52:06.942 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800\n04-15 01: 52:06.943 4987-4987/in.parksmart.operator D/ViewRootImpl: 启用硬件加速, this = ViewRoot{5eeb4b3 in.parksmart.operator/in.parksmart.operator.MainActivity,ident = 134}\n04-15 01: 52:06.972 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800 初始化窗口=0x9de38208,title=in.parksmart.operator/in.parksmart.operator.MainActivity\n04-15 01:52:06.972 4987 -4987/in.parksmart.operator D/Surface: Surface::allocateBuffers(this=0x9de38200)\n04-15 01:52:06.972 4987-5037/in.parksmart.operator D/Surface: Surface::connect(this= 0x9de38200,api=1)\n04-15 01:52:06.975 4987-5037/in.parksmart.operator W/libEGL: [ANDROID_RECORDABLE] 格式: 1\n04-15 01:52:06.976 4987-5037/in.parksmart .operator D/Surface: Surface::setBufferCount(this=0x9de38200,bufferCount=4)\n04-15 01:52:06.980 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器,句柄(0x9c9cd8e0) (w: 812 h:400 s:816 f:0x1 u:0x000f02)\n04-15 01:52:07.008 4987-5037/in.parksmart.operator D/OpenGLRenderer:CacheTexture 4 上传:x, y, 宽度高度 = 0, 0 , 1024, 512\n04-15 01:52:07.025 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器, 句柄(0x9d974780) (w:812 h:400 s:816 f:0x1 u:0x000f02)\ n04-15 01:52:13.710 4987-5052/in.parksmart.operator D/NativeCrypto: ssl=0xaa571900 sslRead buf=0xaf907641 len=1,timeo=0\n04-15 01:52:13.710 4987-5052/in。 parksmart.operator D/NativeCrypto:ssl=0xaa571900 sslRead buf=0xaf917800 len=91,timeo=0\n04-15 01:52:13.711 4987-5052/in.parksmart.operator D/NativeCrypto:ssl=0xaa571900 ssl读取buf=0xaf907640 len=1,timeo=0\n04-15 01:52:13.722 4987-4987/in.parksmart.operator D/FBDB: 已删除子项\n04-15 01:52:13.729 4987-4987/in.parksmart.operator D /FBDB:已删除子项\n04-15 01:52:13.729 4987-4987/in.parksmart.operator D/FBDB:已删除子项\n PerformClick(View.java:5265)\n 在 android.view.View$PerformClick.run(View.java:21534)\n 在 android.os.Handler.handleCallback(Handler.java:815)\n 在 android.os .Handler.dispatchMessage(Handler.java:104)\n 在 android.os.Looper.loop(Looper.java:207)\n 在 android.app.ActivityThread.main(ActivityThread.java:5728)\n 在 java. lang.reflect.Method.invoke(本机方法)\n 位于 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)\n 位于 com.android.internal.os.ZygoteInit.main(ZygoteInit) .java:679)\n04-15 01:52:06.941 4987-4987/in.parksmart.operator D/WindowClient: 添加到 mViews: com.android.internal.policy.PhoneWindow$DecorView{dcd6d0c VE..... R.....I。0,0-0,0},这= android.view.WindowManagerGlobal@ff3d558\n04-15 01:52:06.942 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800\n04-15 01: 52:06.943 4987-4987/in.parksmart.operator D/ViewRootImpl: 启用硬件加速, this = ViewRoot{5eeb4b3 in.parksmart.operator/in.parksmart.operator.MainActivity,ident = 134}\n04-15 01: 52:06.972 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800 初始化窗口=0x9de38208,title=in.parksmart.operator/in.parksmart.operator.MainActivity\n04-15 01:52:06.972 4987 -4987/in.parksmart.operator D/Surface: Surface::allocateBuffers(this=0x9de38200)\n04-15 01:52:06.972 4987-5037/in.parksmart.operator D/Surface: Surface::connect(this= 0x9de38200,api=1)\n04-15 01:52:06.975 4987-5037/in.parksmart.operator W/libEGL: [ANDROID_RECORDABLE] 格式: 1\n04-15 01:52:06.976 4987-5037/in.parksmart .operator D/Surface: Surface::setBufferCount(this=0x9de38200,bufferCount=4)\n04-15 01:52:06.980 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器,句柄(0x9c9cd8e0) (w: 812 h:400 s:816 f:0x1 u:0x000f02)\n04-15 01:52:07.008 4987-5037/in.parksmart.operator D/OpenGLRenderer:CacheTexture 4 上传:x, y, 宽度高度 = 0, 0 , 1024, 512\n04-15 01:52:07.025 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器, 句柄(0x9d974780) (w:812 h:400 s:816 f:0x1 u:0x000f02)\ n04-15 01:52:13.710 4987-5052/in.parksmart.operator D/NativeCrypto: ssl=0xaa571900 sslRead buf=0xaf907641 len=1,timeo=0\n04-15 01:52:13.710 4987-5052/in。 parksmart.operator D/NativeCrypto:ssl=0xaa571900 sslRead buf=0xaf917800 len=91,timeo=0\n04-15 01:52:13.711 4987-5052/in.parksmart.operator D/NativeCrypto:ssl=0xaa571900 ssl读取buf=0xaf907640 len=1,timeo=0\n04-15 01:52:13.722 4987-4987/in.parksmart.operator D/FBDB: 已删除子项\n04-15 01:52:13.729 4987-4987/in.parksmart.operator D /FBDB:已删除子项\n04-15 01:52:13.729 4987-4987/in.parksmart.operator D/FBDB:已删除子项\n 第5728章os.ZygoteInit.main(ZygoteInit.java:679)\n04-15 01:52:06.941 4987-4987/in.parksmart.operator D/WindowClient: 添加到 mViews: com.android.internal.policy.PhoneWindow$DecorView{ dcd6d0c VE.....R.....I。0,0-0,0},这= android.view.WindowManagerGlobal@ff3d558\n04-15 01:52:06.942 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800\n04-15 01: 52:06.943 4987-4987/in.parksmart.operator D/ViewRootImpl: 启用硬件加速, this = ViewRoot{5eeb4b3 in.parksmart.operator/in.parksmart.operator.MainActivity,ident = 134}\n04-15 01: 52:06.972 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800 初始化窗口=0x9de38208,title=in.parksmart.operator/in.parksmart.operator.MainActivity\n04-15 01:52:06.972 4987 -4987/in.parksmart.operator D/Surface: Surface::allocateBuffers(this=0x9de38200)\n04-15 01:52:06.972 4987-5037/in.parksmart.operator D/Surface: Surface::connect(this= 0x9de38200,api=1)\n04-15 01:52:06.975 4987-5037/in.parksmart.operator W/libEGL: [ANDROID_RECORDABLE] 格式: 1\n04-15 01:52:06.976 4987-5037/in.parksmart .operator D/Surface: Surface::setBufferCount(this=0x9de38200,bufferCount=4)\n04-15 01:52:06.980 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器,句柄(0x9c9cd8e0) (w: 812 h:400 s:816 f:0x1 u:0x000f02)\n04-15 01:52:07.008 4987-5037/in.parksmart.operator D/OpenGLRenderer:CacheTexture 4 上传:x, y, 宽度高度 = 0, 0 , 1024, 512\n04-15 01:52:07.025 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器, 句柄(0x9d974780) (w:812 h:400 s:816 f:0x1 u:0x000f02)\ n04-15 01:52:13.710 4987-5052/in.parksmart.operator D/NativeCrypto: ssl=0xaa571900 sslRead buf=0xaf907641 len=1,timeo=0\n04-15 01:52:13.710 4987-5052/in。 parksmart.operator D/NativeCrypto:ssl=0xaa571900 sslRead buf=0xaf917800 len=91,timeo=0\n04-15 01:52:13.711 4987-5052/in.parksmart.operator D/NativeCrypto:ssl=0xaa571900 ssl读取buf=0xaf907640 len=1,timeo=0\n04-15 01:52:13.722 4987-4987/in.parksmart.operator D/FBDB: 已删除子项\n04-15 01:52:13.729 4987-4987/in.parksmart.operator D /FBDB:已删除子项\n04-15 01:52:13.729 4987-4987/in.parksmart.operator D/FBDB:已删除子项\n [第 5728 章] os.ZygoteInit.main(ZygoteInit.java:679)\n04-15 01:52:06.941 4987-4987/in.parksmart.operator D/WindowClient: 添加到 mViews: com.android.internal.policy.PhoneWindow$DecorView{ dcd6d0c VE.....R.....I。0,0-0,0},这= android.view.WindowManagerGlobal@ff3d558\n04-15 01:52:06.942 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800\n04-15 01: 52:06.943 4987-4987/in.parksmart.operator D/ViewRootImpl: 启用硬件加速, this = ViewRoot{5eeb4b3 in.parksmart.operator/in.parksmart.operator.MainActivity,ident = 134}\n04-15 01: 52:06.972 4987-5037/in.parksmart.operator D/OpenGLRenderer: CanvasContext() 0x9f734800 初始化窗口=0x9de38208,title=in.parksmart.operator/in.parksmart.operator.MainActivity\n04-15 01:52:06.972 4987 -4987/in.parksmart.operator D/Surface: Surface::allocateBuffers(this=0x9de38200)\n04-15 01:52:06.972 4987-5037/in.parksmart.operator D/Surface: Surface::connect(this= 0x9de38200,api=1)\n04-15 01:52:06.975 4987-5037/in.parksmart.operator W/libEGL: [ANDROID_RECORDABLE] 格式: 1\n04-15 01:52:06.976 4987-5037/in.parksmart .operator D/Surface: Surface::setBufferCount(this=0x9de38200,bufferCount=4)\n04-15 01:52:06.980 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器,句柄(0x9c9cd8e0) (w: 812 h:400 s:816 f:0x1 u:0x000f02)\n04-15 01:52:07.008 4987-5037/in.parksmart.operator D/OpenGLRenderer:CacheTexture 4 上传:x, y, 宽度高度 = 0, 0 , 1024, 512\n04-15 01:52:07.025 4987-5037/in.parksmart.operator D/GraphicBuffer: 寄存器, 句柄(0x9d974780) (w:812 h:400 s:816 f:0x1 u:0x000f02)\ n04-15 01:52:13.710 4987-5052/in.parksmart.operator D/NativeCrypto: ssl=0xaa571900 sslRead buf=0xaf907641 len=1,timeo=0\n04-15 01:52:13.710 4987-5052/in。 parksmart.operator D/NativeCrypto:ssl=0xaa571900 sslRead buf=0xaf917800 len=91,timeo=0\n04-15 01:52:13.711 4987-5052/in.parksmart.operator D/NativeCrypto:ssl=0xaa571900 ssl读取buf=0xaf907640 len=1,timeo=0\n04-15 01:52:13.722 49
我没有针对崩溃的解决方案,但我有一些如何重现它的提示。
事故是如何造成的
此崩溃是由自动化测试环境触发的
android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
Run Code Online (Sandbox Code Playgroud)
而且很可能在活动重新创建之间有些东西没有持续/正确处理。
通过仪器测试进行再现。
您可以查看文档来了解如何编写仪器测试以便重现它: https ://developer.android.com/reference/android/app/Instrumentation
在这篇文章中,有一些关于如何通过仪器测试处理活动生命周期的额外细节 如何在android仪器测试中停止和重新启动活动?
以用户身份进行复制。
当您将应用程序发送到后台时,这可能会在真实设备上发生,并且系统会杀死它以获取资源,因此当它再次带到前面时,某些内容不会正确分配。
这里的困难在于,在测试时让系统终止您的活动并不容易,因为如果另一个密集任务需要资源,则可能会发生这种情况,因此低端设备是此类测试的必须条件。
作为开发人员进行复制。
根据文档,简单的解决方法是使用开发人员选项下提供的“不保留活动”,这将在活动发送到后台后立即终止该活动。
| 归档时间: |
|
| 查看次数: |
3890 次 |
| 最近记录: |