前言:
之前同事问到我一个问题 Android的 assets 目录下面 不能加载下划线开头的目录
问题复现
private static final String TAG = "-----MainActivity-----";
private WebView contentWebView = null;
private WebViewUpload chromeClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contentWebView = (WebView) findViewById(R.id.webview);
contentWebView.loadUrl("file:///android_asset/_test/test.html");
webviewSetting(contentWebView);
initHardwareAccelerate();
}
这段代码大家乍一看 没什么问题, webview 加载本地的html 我们运行一把
我们具体要分析打包后的apk 里面是什么情况
然后我们修改后
这边搜了一下网友回答
所以的出结论 android studio 在编译的时候 自动忽略了下划线开头的文件夹
解决方案
-
有工程的情况下
去掉了我们的下划线即可接
-
没有工程的情况下
反编译拆包
把我们的assets 复制到我们目录下面 然后回编译 出包签名测试
装机测试
最后总结:
android studio 在编译出包的时候跟我们用apktool 命令编译的时候是不同的有些字符开头的文件夹自动给我们忽略了 所以资源没有打进包里面 导致我们的程序加载出错 我们要多注意 用apktool 工具拆包多查看分析才好解决问题 最后呢 希望我都文章能帮助到各位同学工作和学习 如果你觉得文章还不错麻烦给我三连 关注点赞和转发 谢谢