crashlyticsUploadDeobsRelease导致打包卡住

在使用Fabric 进行crash的统计功能,在打包的时候,需要向fabric上传编译信息,由于国内的网络问题,可能会导致打包失败。
如下,屏蔽这个task即可。

Firebase 在每次 build release 包的时候会上传 mapping 文件,目前 mapping 文件已经快达 10M 左右,外加国内访问外网非常慢,在出多个包的时候特别花时间,但是又不能不上传 mapping 文件,因此只针对特定渠道上面,并且这个渠道不是常用的那个渠道

gradle.taskGraph.whenReady {
tasks.each { task ->
if (task.name.contains("crashlyticsUploadDeobsRelease")) {
if (rootProject.ext.currentChannel == channel_google_play_store_code) {
task.enabled = true
} else {
task.enabled = false
}
}
}
}

测试两个渠道 build 包时候符合预期,假如之后希望快速 build 包就把所有渠道的上传 mapping 文件给屏蔽掉

Android WebView缓存策略详解

WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即appcache)。

H5 缓存

1、缓存构成
根据setAppCachePath(String appCachePath)提供的路径,在H5使用缓存过程中生成的缓存文件。

2、缓存模式
无模式选择,通过setAppCacheEnabled(boolean flag)设置是否打开。默认关闭,即,H5的缓存无法使用。

3、清除缓存
找到调用setAppCachePath(String appCachePath)设置缓存的路径,把它下面的文件全部删除就OK了。

开发过程中遇到使用特定的网址自动登录,界面本身加载成功,但是登录状态失败,通过 chrome 的 debug 调试:chrome://inspect/#devices 查看发现与普通chrome浏览器的网络请求状态基本没有明显差别,基本 JS 都加载成功,区别只是登录成功状态的信息获取根本就没有请求

一开始往二次跳转的思路上面去解决,后面发现根本就没有过二次跳转的 shouldOverrideUrlLoading 方法,那也就是说明根本不是多次跳转的问题,于是往缓存上面着手,最后经过查找 webview 默认不会开启 H5 的缓存,需要主动打开,于是尝试开启

settings.setAppCacheEnabled(true);
settings.setAllowFileAccess(true);
settings.setAppCachePath(new File(context.getFilesDir(), "XXXX").getAbsolutePath());
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);

开启过后登录状态正常展示。

转载:https://blog.csdn.net/a345017062/article/details/8573689