项目场景:
安卓开发,调用gpuimage,频繁切换时或长时间启动会出现crash。
github相关提问:
https://github.com/cats-oss/android-gpuimage/issues/539
https://github.com/cats-oss/android-gpuimage/issues/4
https://github.com/cats-oss/android-gpuimage/issues/230
https://github.com/cats-oss/android-gpuimage/issues/323
问题描述
报错信息:
java.util.NoSuchElementException:
at java.util.LinkedList.removeFirstImpl(LinkedList.java:689)
at java.util.LinkedList.removeFirst(LinkedList.java:676)
at jp.co.cyberagent.android.gpuimage.GPUImageFilter.runPendingOnDrawTasks(GPUImageFilter.java:134)
at jp.co.cyberagent.android.gpuimage.GPUImageFilter.onDraw(GPUImageFilter.java:106)
at jp.co.cyberagent.android.gpuimage.GPUImageRenderer.onDrawFrame(GPUImageRenderer.java:120)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1531)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1248)
原因分析:
gpuimage库有同步问题。
解决方案:
GPUImageFilter.java文件,在runPendingOnDrawTasks函数加个try-catch并重新编译。
具体操作:https://www.jianshu.com/p/b54368815d45
PS:第七步,编译好的.class文件并非一定存放在\build\intermediates\classes,本项目编译文件存放在\build\intermediates\javac
其他:
可能遇到的bug:
①Lint found errors in the project; aborting build
https://blog.csdn.net/qq_29266921/article/details/53113659
②Execution failed for task ‘:app:checkDebugDuplicateClasses‘.
https://blog.csdn.net/m0_46278918/article/details/107770473
③其他
https://blog.csdn.net/flyingyajun/article/details/113946509