1、You need to use a Theme.AppCompat theme (or descendant) with this activity.
复现步骤
补丁加载成功之后重启应用,再退出应用重进闪退
日志
TinkerUncaughtHandler catch exception:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
解决方案
原先的 BaseActivity 继承 AppCompatActivity,改为继承自 Activity
[听说是 appcompat 依赖某个版本开始检查 theme,但是我没有找到合适的版本,暂且使用此方法临时解决]
思考
可能是资源修复存在问题导致,因为在调试其他问题过程中也遇到资源问题
[如 Activity 背景原本是白色的,补丁加载成功重启之后变成了黑色!]
2、Tinker AMS hook 失败?(在 Android 10 上 [及以上?])
注意:运行在 Android 8.1 正常
日志
解决方案
适配 Android 10 需 hook android.app.ActivityTaskManager
[看源码或读博客,发现 Android10 之后新增了 ActivityTaskManager 类,之前看源码记忆中注释写到 ‘某个类过于臃肿,后续版本计划拆分’ ]
思考
没有正确代理 startActivity 导致 Tinker 内部没有赋值,加载修复过程直接返回退出
持续更新,欢迎关注~