前言:
之前同事問到我一個問題 Android的 assets 目錄下面 不能加載下劃線開頭的目錄
問題復(fù)現(xiàn)

image.png
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 我們運(yùn)行一把

image.png
我們具體要分析打包后的apk 里面是什么情況

image.png
然后我們修改后

image.png

image.png

image.png
這邊搜了一下網(wǎng)友回答

e220ecea3507809dfec8bbe848b672e.png
所以的出結(jié)論 android studio 在編譯的時候 自動忽略了下劃線開頭的文件夾
解決方案
-
有工程的情況下

image.png
去掉了我們的下劃線即可接
-
沒有工程的情況下
反編譯拆包

image.png
把我們的assets 復(fù)制到我們目錄下面 然后回編譯 出包簽名測試

image.png
裝機(jī)測試

image.png
最后總結(jié):
android studio 在編譯出包的時候跟我們用apktool 命令編譯的時候是不同的有些字符開頭的文件夾自動給我們忽略了 所以資源沒有打進(jìn)包里面 導(dǎo)致我們的程序加載出錯 我們要多注意 用apktool 工具拆包多查看分析才好解決問題 最后呢 希望我都文章能幫助到各位同學(xué)工作和學(xué)習(xí) 如果你覺得文章還不錯麻煩給我三連 關(guān)注點(diǎn)贊和轉(zhuǎn)發(fā) 謝謝