解决 appcompat 1.1.0 导致 webview crash 的问题

Android SDK 太不让人省心了,正式版本居然也埋雷。

前段时间把 support 升级到了 androidx,appcompat 自动升级了新版本 androidx.appcompat:appcompat:1.1.0

简单回归了下功能就发上线了,结果在在 5.1 的系统上发生了大规模的 crash,抛出的异常是找不到资源。

java.lang.RuntimeException: Unable to start activity ComponentInfo{}:
android.content.res.Resources$NotFoundException: String resource ID #0x2040003

拿到错误栈就好说了,无脑 Google 一下,很多人都遇到了这个问题,issue tracker 上有人已经提交了这个 bug。

首先尝试在 gradle 的 dependency 文件中将 1.1.0 版本退回到 1.1.0-rc01,跑了一下 ./gradlew :app:denepdencies 发现并没有用,因为其他 sdk 依赖了 1.1.0 的版本,gradle 的版本仲裁机制就是这样,永远取最新版。

怎么办?

好办,gradle 脚本可以强行指定版本:

configurations.all {
    resolutionStrategy {
        force 'androidx.appcompat:appcompat:1.1.0-rc01'
    }
}

解决 appcompat 1.1.0 导致 webview crash 的问题_第1张图片
编译安装跑一下,OK 没问题了。

你可能感兴趣的:(Android,进阶)