鍍金池/ 問(wèn)答/Android/ android 組件化,資源無(wú)法正常讀取?

android 組件化,資源無(wú)法正常讀取?

我有兩個(gè)module , appbase ,其中app依賴(lài)base
我在app中想要加載一張圖片R.mipmap.ic_launcher

這是我的代碼

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
  1. 如果我的ic_launcher是在app模塊下的話(huà),這時(shí)bitmap為空。后續(xù)操作就會(huì)有問(wèn)題
  2. 我如果使用ImageViewsrc:來(lái)加載圖片的話(huà)是可以顯示出來(lái)的。
  3. 當(dāng)我把圖片從app移動(dòng)到base下后,同樣的代碼獲取到的bitmap又不為空了。
  4. 如果我用getResources().getDrawable(R.mipmap.ic_launcher)是可以獲取到Drawable對(duì)象的。

所以我想問(wèn)下是這個(gè)資源文件轉(zhuǎn)Bitmap的方法有問(wèn)題嗎?

我查看了ImageView的源碼發(fā)現(xiàn)ImageView是將資源轉(zhuǎn)換為Drawable對(duì)象。
ic_launcher存在于app下時(shí),R.mipmap.ic_launcher是有值的。
我調(diào)用的BitmapFactory.decodeResource , 最后是走到native方法 DecodeAsset 中,已經(jīng)超出我能力范圍了。

我的代碼在這github

回答
編輯回答
澐染

原因是多個(gè)module都存在相同命名的資源,這時(shí)資源id被改變了(待驗(yàn)證),所以找不到了。
解決方法是,確保所有module下的資源文件沒(méi)有任何兩個(gè)為相同的。。

2017年9月8日 08:45