您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么在Android中使用gradle打包Assets目錄,此處通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下:
1 在你的src或者main目錄上右鍵new;
2 在Folder菜單上找到Assets Folder,確定即可。
有個問題提一下,如果此時你的視圖是Project,新創建的assets目錄因為是空的,部分情況下會看不見(很詭異),這時你只需要將視圖切換為Android,就能正常看見了。
如果你的某些資源放置在assets目錄下,本地編譯能夠正常訪問,構建打包卻死活讀取不到的時候,建議你把打包生成的apk拿出來,將后綴改成zip,然后解壓縮如下圖所示,確定一下你的assets目錄下的資源是否真的被打包進去了。提醒一下,不要試圖修改里面的內容,都是驗過簽的。
如果沒有,原因可能是你在創建assets目錄時,并沒有按照上面的流程,而且gradle的構建腳本里面也沒有指明assets資源的路徑,因此直接導致gradle懵逼。
1 按照上面的流程重新創建assets目錄;
2 在gradle里面android括號內,指定assets的路徑即可,如
sourceSets { main { assets.srcDirs = ['src/main/assets'] } }
當然,需要根據你的具體情況來看,如果你為不同版本準備了不同的assets資源,就要添加在對應的flavors中。
因為項目的需要,筆者要在assets目錄下為不同的版本(360和demo)提供不同的資源。但是資源的名稱也都是相同的。
筆者最初采取了在assets下創建文件夾對內容加以分類,同時配置不同Flavors的做法,如下圖所示。
本以為萬事無虞,結果卻讓人很無奈。
測試發現,這種方式并不奏效——assets目錄仍然在main目錄下,默認的仍然是一個文件夾(360或者demo)下的內容作為最終打包的資源,并沒有根據版本區分開來。
后來采取的做法是在每一種版本(即每一種flavors)都創建一個assets目錄,同時更改sourceSets,為每個Flavors提供不同配置,如下圖所示,通過這樣來區分不同的資源依賴,最后也證實可行。
1 assets目錄一定要按照正確的流程創建。如果不是正確的流程,一定要在gradle中指明它的路徑;
2 assets目錄的位置不受限制,可以隨便指定,關鍵是gradles里面的路徑;
3 src下默認的main目錄是所有flavors共有的資源。每個flavors與main的資源只能夠合并,不能替換;
4 為不同的falvors提供不同的assets資源時,assets資源一定要創建在每個flavors下;
5 配置資源的地方是sourceSets,在sourceSets中區分不同的flavors;而不是在productFlavors下區分不同的sourceSets。
補充:關于AndroidStudio assets目錄的一些坑
InputStream inputStream= null; try { inputStream = getAssets().open("timg.jpg"); } catch (IOException e) { e.printStackTrace(); } bitmap= BitmapFactory.decodeStream(inputStream);
到此這篇關于怎么在Android中使用gradle打包Assets目錄的文章就介紹到這了,更多相關{**}的內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。