卓修武
卓修武
@binleo731 我的环境基本和你一样,目前不会出现type already exists 的问题了。根据我的分析,这个问题应该跟wmrouter的插件无关,至少在我的场景下 问题应该是 com.android.tools.build:gradle插件的BUG。 我猜测的具体原因是: com.android.tools.build:gradle 插件的DexArchiveBuilderTransform 在3.3.0以下版本,在处理 jar转换成dex过程中,没有删除变动的jar包的缓存导致的。 具体代码在 com.android.tools.build:gradle:3.2.0 版本的 525行 processJarInput 函数中 if (!isIncremental || additionalPaths.contains(jarInput.getFile())) { //执行jar 转换为dex } } else if (jarInput.getStatus()...
> @Knight-ZXW 在测试过程中发现, 当 移除 apply plugin: 'WMRouter' 之后, 就不会再出现这个问题 我的也是 移除plugin之后就不会出现, 从我的测试上来看,这并不能说明就是wmrouter plugin的问题。 我也有试过 Arouter的plugin实现,同样也会出现这个问题(type alreday exists)。 因为我不太确定你的具体工程配置,无法确定你升级android-gradle版本后依旧会出现这个问题的原因,如果可以的话,你可以在github创建一个可以复现该问题的demo工程 我来看下。
> 同问,如何解决? 我没复现,您起一个新的项目 看能复现吗。如果可以复现的化,可以帮忙发到github上我看看
未复现,看调用路径应该是 byteX的兼容问题
> 获取的堆栈实际是这样(缺乏文件名和行号) > > ``` > 29944-29962 TAG com....looper.monitor.app D void java.lang.Thread.sleep(long, int) > 29944-29962 TAG com....looper.monitor.app D void java.lang.Thread.sleep(long) > 29944-29962 TAG com....looper.monitor.app D boolean com.netease.cloudmusic.APP.addIdleHandler$lambda-1(com.netease.cloudmusic.APP) > 29944-29962 TAG...
> > > > 看崩溃堆栈应该是线程挂起恢复的问题导致的。我是场景是在子线程中抓主线程的堆栈 第一次调用就崩溃吗, 方便贴下完整的错误日志?
> SuspendThreadByThreadId 有错误的信号信息吗,没有信号看不出来具体是什么类型的错误
我晚点测试下, 另外这个项目是demo,我还没应用到生产环境,最好自己多测试下,已知的存在 一些偏移量兼容的问题还没改。
> SuspendThreadByThreadId 我这边测试 没有崩溃 