Pff,這是這些東西中的一個會毀掉你的日程安排,但你不想放棄。自2天以來,我的一些位圖資源無法加載並顯示在我的應用程序中。我將它釘在getDrawable()方法上,在提供的ResID上返回null。getDrawable返回null
我使用API 22或Nexus 5物理設備在Genymotion Nexus 5上運行此操作。對於我的項目,我主要使用以下內容來加載drawables。
ResourcesCompat.getDrawable(context.getResources(),drawableID,null);
但因爲這個問題我也試過context.getDrawable(ID)和getResources()。getDrawable(ID,getTheme())。每個方法都返回null。
其他的事情,可能是有趣:
- 資源是在我的項目(在MDPI,華電國際,xhdpi & & xxhdpi)
- 文件名的是正確的(xxx_yyy_zzz.png)
- 清潔項目/刪除生成產品
- 從我的回購中得到舊圖像文件:不加載
- 資源已被複制並重命名:無法加載。
- 在我的圖像編輯器中打開資源並保存爲全新文件:不加載。
- 將資源複製到空虛擬項目中:它們實際顯示!
- 我的資源的90%完美加載,它只是給出問題的幾個較大的位圖。
- 該圖像在Android Studio佈局預覽(Nexus 5,Api 22)中顯示
- 我已經包含一些測試(如副本),偶爾會實際加載,但這很少見。我真正關心的圖像永遠不會加載。
我也嘗試步入Android的代碼,並得到這些對getDrawable(ID):
- 拋出新IllegalStateException異常( 「覆蓋的配置已經設置」)(ContextThemeWrapper.java)
- 在AssetManager.java,getResourceValue我看到一個參數傳遞類型的TypedValue的與字符串「RES /可繪-xxhdpi-V4/{IMAGE_NAME} png格式」
後者提出了一些警鐘爲好,因爲我沒有帶-v4後綴的文件夾,所以我想知道它爲什麼創建它。但是單步執行Android Studio中的代碼對我來說並沒有什麼意義,因爲步入方法通常會讓我在Android的評論塊中正常工作。
無論如何,我希望有人對圖像資源也有一些奇怪的問題,並且可能能夠指出我爲什麼會發生這種情況的正確方向。事實上,圖像沒有損壞,我真的沒有看到我的方法調用或資源文件夾中的任何錯誤,使得我沒有選擇。
在此先感謝。
是的,自動完成立即找到我所有的drawable,包括沒有加載,只要我輸入R.drawable。這些資源實際上是在drawable-mdpi(以及其他所提到的變種)文件夾中。 –