av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Android 使用gradle打包Assets目錄的案例

瀏覽:2日期:2022-09-20 17:30:34

現(xiàn)在提起Android開發(fā)工具,大多人第一個(gè)想到的肯定是Android Studio。谷歌專門為Android開發(fā)者推出的這款I(lǐng)DE,以其強(qiáng)大的功能迅速擊敗的老牌的eclipse。

與此同時(shí),eclipse依賴的ant,也逐漸被更加強(qiáng)大更加靈活的gradle所取代,成為Android開發(fā)領(lǐng)域首選構(gòu)建工具。

強(qiáng)大并不意味著沒有坑。在使用gradle的過程中,特別是打包assets目錄 下的一些資源時(shí),筆者真沒想到你是這樣的assets,遇到了若干問題,在此處做一個(gè)整理。

如何創(chuàng)建assets目錄

老實(shí)說,筆者在這個(gè)地方真的吃過大虧。在eclipse時(shí)代,筆者創(chuàng)建assets目錄時(shí),習(xí)慣性地操作是“右鍵 -> new -> Directory”,然后只需將文件夾命名為“assets”即可。

到了Studio下,還是同樣的操作,結(jié)果卻有可能導(dǎo)致打包的apk中assets資源丟失了!!!所以習(xí)慣一定要改,Android Studio下assets目錄正確的創(chuàng)建姿勢(shì)是:

1 在你的src或者main目錄上右鍵new;

2 在Folder菜單上找到Assets Folder,確定即可。

Android 使用gradle打包Assets目錄的案例

有個(gè)問題提一下,如果此時(shí)你的視圖是Project,新創(chuàng)建的assets目錄因?yàn)槭强盏模糠智闆r下會(huì)看不見(很詭異),這時(shí)你只需要將視圖切換為Android,就能正常看見了。

assets目錄無法打包進(jìn)gradle

如果你的某些資源放置在assets目錄下,本地編譯能夠正常訪問,構(gòu)建打包卻死活讀取不到的時(shí)候,建議你把打包生成的apk拿出來,將后綴改成zip,然后解壓縮如下圖所示,確定一下你的assets目錄下的資源是否真的被打包進(jìn)去了。提醒一下,不要試圖修改里面的內(nèi)容,都是驗(yàn)過簽的。

Android 使用gradle打包Assets目錄的案例

如果沒有,原因可能是你在創(chuàng)建assets目錄時(shí),并沒有按照上面的流程,而且gradle的構(gòu)建腳本里面也沒有指明assets資源的路徑,因此直接導(dǎo)致gradle懵逼。

解決辦法有兩個(gè):

1 按照上面的流程重新創(chuàng)建assets目錄;

2 在gradle里面android括號(hào)內(nèi),指定assets的路徑即可,如

sourceSets { main { assets.srcDirs = [’src/main/assets’] }}

當(dāng)然,需要根據(jù)你的具體情況來看,如果你為不同版本準(zhǔn)備了不同的assets資源,就要添加在對(duì)應(yīng)的flavors中。

assets目錄下的同名文件

因?yàn)轫?xiàng)目的需要,筆者要在assets目錄下為不同的版本(360和demo)提供不同的資源。但是資源的名稱也都是相同的。

筆者最初采取了在assets下創(chuàng)建文件夾對(duì)內(nèi)容加以分類,同時(shí)配置不同F(xiàn)lavors的做法,如下圖所示。

本以為萬事無虞,結(jié)果卻讓人很無奈。

Android 使用gradle打包Assets目錄的案例

測(cè)試發(fā)現(xiàn),這種方式并不奏效——assets目錄仍然在main目錄下,默認(rèn)的仍然是一個(gè)文件夾(360或者demo)下的內(nèi)容作為最終打包的資源,并沒有根據(jù)版本區(qū)分開來。

后來采取的做法是在每一種版本(即每一種flavors)都創(chuàng)建一個(gè)assets目錄,同時(shí)更改sourceSets,為每個(gè)Flavors提供不同配置,如下圖所示,通過這樣來區(qū)分不同的資源依賴,最后也證實(shí)可行。

Android 使用gradle打包Assets目錄的案例

總結(jié)一下

1 assets目錄一定要按照正確的流程創(chuàng)建。如果不是正確的流程,一定要在gradle中指明它的路徑;

2 assets目錄的位置不受限制,可以隨便指定,關(guān)鍵是gradles里面的路徑;

3 src下默認(rèn)的main目錄是所有flavors共有的資源。每個(gè)flavors與main的資源只能夠合并,不能替換;

4 為不同的falvors提供不同的assets資源時(shí),assets資源一定要?jiǎng)?chuàng)建在每個(gè)flavors下;

5 配置資源的地方是sourceSets,在sourceSets中區(qū)分不同的flavors;而不是在productFlavors下區(qū)分不同的sourceSets。

補(bǔ)充:關(guān)于AndroidStudio assets目錄的一些坑

1.新建assets目錄

Android 使用gradle打包Assets目錄的案例

2.在Activity中加載assets目錄中的圖片資源到bitmap

InputStream inputStream= null;try { inputStream = getAssets().open('timg.jpg');} catch (IOException e) { e.printStackTrace();}bitmap= BitmapFactory.decodeStream(inputStream);

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 亚洲欧美综合 | 天天爽夜夜爽夜夜爽 | 黄色三级大片 | 天天操狠狠干 | 免费毛片在线 | 成人免费视频国产免费麻豆 | 国产农村女人一级毛片 | 美利坚合众国av | 五月天黄色网址 | 精品久久网站 | 日韩专区在线 | 日韩亚洲欧美在线 | 日韩高清国产一区在线 | 成人免费毛片嘿嘿连载视频 | av在线成人 | 日韩精品成人 | 国产深夜福利 | 激情五月婷婷丁香 | 国产高清网站 | 日韩成人精品一区二区 | 黄色网免费 | 亚洲精品国产精品国自产观看浪潮 | 国产高清视频在线播放 | 四虎最新地址 | 午夜爽爽影院 | 欧美在线观看视频 | 国产乱码一区二区 | 国产在线成人 | 日本黄a三级三级三级 | 欧美久久视频 | 欧美一区二区在线观看 | 五月婷婷激情综合 | 天天搞天天搞 | 日韩黄色一级 | 80日本xxxxxxxxx96 国产成人在线免费视频 | 中文国产字幕 | 日韩国产中文字幕 | 日韩精品片 | 久久久久久精 | 九九在线免费视频 | 国产欧美综合一区二区三区 |