多方通话的时候遇到图片回收问题---目前没有方法解决 Canvas: trying to use a recycled bitmap android.graphics.Bitmap

时间:2023-02-03 08:00:30
01-16 14:18:16.795981  4811  4811 D InCall  : FeatureOptionWrapper - isSupportDualTalk: false
01-16 14:18:16.796019  4811  4811 D InCall  : VTUtils - getVTCall()... vtCall: null
01-16 14:18:16.796050  4811  4811 D InCall  : VTUtils - isVTOutgoing()... isVTOutgoing: false
01-16 14:18:16.796077  4811  4811 D InCall  : VTUtils - isVTActive()... isVTActive: false
01-16 14:18:16.796104  4811  4811 D InCall  : VTUtils - existNonVTCall()... existNonVTCall: true
01-16 14:18:16.796134  4811  4811 D InCall  : VTCallPresenter - VT_SCREEN_WAITING mode, keep previous mode and do nothing.
01-16 14:18:16.796172  4811  4811 D InCall  : FeatureOptionWrapper - isSupportDualTalk: false
01-16 14:18:16.796205  4811  4811 D InCall  : AnswerFragment - updateIncomingCallMenuButton()...
01-16 14:18:16.796232  4811  4811 D InCall  : AnswerFragment - updateIncomingCallMenuButton()... mGlowpad is invisible, dismiss popup menu.
01-16 14:18:16.796333  4811  4811 D InCall  : CallHandlerService - executeMessage 4
01-16 14:18:16.796372  4811  4811 I InCall  : CallHandlerService - ON_AUDIO_MODE: EARPIECE, muted (false)
01-16 14:18:16.796408  4811  4811 D InCall  : CallHandlerService - executeMessage 5
01-16 14:18:16.796442  4811  4811 I InCall  : CallHandlerService - ON_SUPPORTED_AUDIO_MODE: EARPIECE, SPEAKER
01-16 14:18:16.796480  4811  4811 D InCall  : CallHandlerService - executeMessage 4
01-16 14:18:16.796546  4811  4811 I InCall  : CallHandlerService - ON_AUDIO_MODE: EARPIECE, muted (false)
01-16 14:18:16.796575  4811  4811 D InCall  : CallHandlerService - executeMessage 5
01-16 14:18:16.796602  4811  4811 I InCall  : CallHandlerService - ON_SUPPORTED_AUDIO_MODE: EARPIECE, SPEAKER
01-16 14:18:16.799848   211   612 D AudioFlinger_Thread: threadLoop_sleepTime write muted data to hw
01-16 14:18:16.802622   694  1149 D AppOps  : noteOperation: allowing code 4 uid 10003 package com.android.contacts
01-16 14:18:16.802869   898  4156 V ContactsProvider: query: uri=content://com.android.contacts/contacts/20/entities  projection=[name_raw_contact_id, display_name_source, lookup, display_name, display_name_alt, phonetic_name, photo_id, starred, contact_presence, contact_status, contact_status_ts, contact_status_res_package, contact_status_label, contact_id, raw_contact_id, account_name, account_type, data_set, account_type_and_data_set, dirty, version, sourceid, sync1, sync2, sync3, sync4, deleted, name_verified, data_id, data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12, data13, data14, data15, data_sync1, data_sync2, data_sync3, data_sync4, data_version, is_primary, is_super_primary, mimetype, res_package, group_sourceid, mode, chat_capability, status, status_res_package, status_icon, status_label, status_ts, photo_uri, send_to_voicemail, custom_ringtone, is_user_profile, send_to_voicemail_vt, sim_id, indicate_phone_or_sim_contact, index_in_sim, is_sdn_contact, is_additional_number]  selection=[null]  args=null  order=[raw_contact_id]  cancellationSignal=null
01-16 14:18:16.803025   898  4156 D ContactsProvider: [queryLocal]match: 1019
01-16 14:18:16.803574  4811  4811 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = com.mediatek.incallui.vt.VTSurfaceView{4283eb30 V.E...C. ......I. 0,0-0,0 #7f0d016e app:id/VTHighVideo}
01-16 14:18:16.803631  4811  4811 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = com.mediatek.incallui.vt.VTSurfaceView{42621bc0 V.E...C. ......I. 0,0-0,0 #7f0d0172 app:id/VTLowVideo}
01-16 14:18:16.805004   898  4156 D ContactsProvider: [query]c.count(): 7
01-16 14:18:16.805250  4811  4811 D AndroidRuntime: Shutting down VM
01-16 14:18:16.805309  4811  4811 W dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41c9ece0)
01-16 14:18:16.805321  4811  4811 W dalvikvm: threadid=1: uncaught exception occurred
01-16 14:18:16.805426  4811  4811 W System.err: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@42722410
01-16 14:18:16.806734  4811  4811 W System.err: at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1084)
01-16 14:18:16.806769  4811  4811 W System.err: at android.view.GLES20Canvas.drawBitmap(GLES20Canvas.java:848)
01-16 14:18:16.806803  4811  4811 W System.err: at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:490)
01-16 14:18:16.806831  4811  4811 W System.err: at android.widget.ImageView.onDraw(ImageView.java:1037)
01-16 14:18:16.806856  4811  4811 W System.err: at android.view.View.draw(View.java:14757)
01-16 14:18:16.806881  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13617)
01-16 14:18:16.806917  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.806937  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.806957  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.806981  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.807007  4811  4811 W System.err: at android.view.View.draw(View.java:14768)
01-16 14:18:16.807031  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13617)
01-16 14:18:16.807056  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.807079  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.807104  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.807128  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.807154  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13609)
01-16 14:18:16.807179  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.807203  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.807228  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.807252  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.807277  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13609)
01-16 14:18:16.807301  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.807325  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.807350  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.807380  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.807405  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13609)
01-16 14:18:16.807429  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.807453  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.807478  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.807502  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.807526  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13609)
01-16 14:18:16.807551  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.807575  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.807599  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.807625  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.807649  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13609)
01-16 14:18:16.807674  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.807698  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.807722  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.807747  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.807772  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13609)
01-16 14:18:16.807796  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.807822  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.807853  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.807884  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.807909  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13609)
01-16 14:18:16.807934  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.807958  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.807983  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.808007  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.808032  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13609)
01-16 14:18:16.808058  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.808083  4811  4811 W System.err: at android.view.View.draw(View.java:14459)
01-16 14:18:16.808116  4811  4811 W System.err: at android.view.ViewGroup.drawChild(ViewGroup.java:3273)
01-16 14:18:16.808141  4811  4811 W System.err: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3091)
01-16 14:18:16.808168  4811  4811 W System.err: at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchDraw(PhoneWindow.java:2424)
01-16 14:18:16.808193  4811  4811 W System.err: at android.view.View.draw(View.java:14768)
01-16 14:18:16.808217  4811  4811 W System.err: at android.widget.FrameLayout.draw(FrameLayout.java:519)
01-16 14:18:16.808243  4811  4811 W System.err: at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2404)
01-16 14:18:16.808268  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13617)
01-16 14:18:16.808293  4811  4811 W System.err: at android.view.View.getDisplayList(View.java:13664)
01-16 14:18:16.808319  4811  4811 W System.err: at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1649)
01-16 14:18:16.808345  4811  4811 W System.err: at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1528)
01-16 14:18:16.808369  4811  4811 W System.err: at android.view.ViewRootImpl.draw(ViewRootImpl.java:2915)
01-16 14:18:16.808395  4811  4811 W System.err: at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2780)
01-16 14:18:16.808421  4811  4811 W System.err: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2390)
01-16 14:18:16.808445  4811  4811 W System.err: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1262)
01-16 14:18:16.808469  4811  4811 W System.err: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6400)
01-16 14:18:16.808558  4811  4811 W System.err: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788)
01-16 14:18:16.808582  4811  4811 W System.err: at android.view.Choreographer.doCallbacks(Choreographer.java:591)
01-16 14:18:16.808601  4811  4811 W System.err: at android.view.Choreographer.doFrame(Choreographer.java:560)
01-16 14:18:16.808627  4811  4811 W System.err: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774)
01-16 14:18:16.808653  4811  4811 W System.err: at android.os.Handler.handleCallback(Handler.java:808)
01-16 14:18:16.808680  4811  4811 W System.err: at android.os.Handler.dispatchMessage(Handler.java:103)
01-16 14:18:16.808704  4811  4811 W System.err: at android.os.Looper.loop(Looper.java:193)
01-16 14:18:16.808728  4811  4811 W System.err: at android.app.ActivityThread.main(ActivityThread.java:5322)
01-16 14:18:16.808776  4811  4811 W System.err: at java.lang.reflect.Method.invokeNative(Native Method)
01-16 14:18:16.808803  4811  4811 W System.err: at java.lang.reflect.Method.invoke(Method.java:515)
01-16 14:18:16.808829  4811  4811 W System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
01-16 14:18:16.808854  4811  4811 W System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
01-16 14:18:16.808877  4811  4811 W System.err: at dalvik.system.NativeStart.main(Native Method)
01-16 14:18:16.808908  4811  4811 W dalvikvm: threadid=1: calling UncaughtExceptionHandler
01-16 14:18:16.808944  4811  4811 I dalvikvm: +++ calling Ljava/lang/ThreadGroup;.uncaughtException
01-16 14:18:16.809918   694  1768 D AppOps  : noteOperation: allowing code 4 uid 10003 package com.android.contacts
01-16 14:18:16.811706   211   612 D AudioFlinger_Thread: threadLoop_sleepTime write muted data to hw
01-16 14:18:16.812003   694  2561 V Provider/Settings: get setting for user 0 by user 0 so skipping cache
01-16 14:18:16.812040   694  2561 V Provider/Settings:  from settings cache , name = dropbox:system_app_crash , value = null
01-16 14:18:16.812244   694  2561 D dalvikvm: create interp thread : stack size=128KB
01-16 14:18:16.812287   694  2561 D dalvikvm: create new thread
01-16 14:18:16.812412   694  2561 D dalvikvm: new thread created
01-16 14:18:16.812418   694  2561 D dalvikvm: update thread list
01-16 14:18:16.812463   694 12295 D dalvikvm: threadid=78: interp stack at 0x6b04b000
01-16 14:18:16.812473   694 12295 D dalvikvm: threadid=78: created from interp
01-16 14:18:16.812531   694  2561 D dalvikvm: start new thread
01-16 14:18:16.812550   694 12295 D dalvikvm: threadid=78: notify debugger

01-16 14:18:16.812559   694 12295 D dalvikvm: threadid=78 (Error dump: system_app_crash): calling run()


网上资料查找 

Bitmap removeBitmap = softReference.get();
if(removeBitmap != null && !removeBitmap.isRecycled()){
removeBitmap.recycle(); //此句造成的以上异常,有人测试去掉这句就好了。
removeBitmap = null;
}

方法二,担心性能问题,把这个异常try catch掉。