1. 程式人生 > >Android關於drawable和drawable-v24,mipmap-anydpi-v26引起的java.lang.NullPointerException

Android關於drawable和drawable-v24,mipmap-anydpi-v26引起的java.lang.NullPointerException

前言

經常我們放置圖片一般預設drawable,mipmap-hdpi,mipmap-mdpi,mipmap-xhdpi資料夾下,這樣的情況下我們執行起來的APP也不會出現什麼問題,那麼如果圖片放在drawable-v24,mipmap-anydpi-v26資料夾下就會出現問題。這是由於在不同的drawable,mipmap資料夾用於為裝置相容性和不同的Android版本提供不同的螢幕密度造成的。

1.建立一個專案時自動生成res目錄

drawable
drawable-v24
layout
mipmap-anydpi-v26
mipmap-hdpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi

解決錯誤的最好方法是  我們打斷點去看,常見的錯誤如下:

1.android.content.res.Resources$NotFoundException: Resource

2. Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int
android.graphics.Bitmap.getWidth()' on a null object reference


總結:

圖片資源放到drawable-v24裡面,導致7.0以下不能找到圖片 不同的drawable資料夾用於為裝置相容性和不同的Android版本提供不同的螢幕密度。同理mipmap-anydpi-v26  API 26(安卓8.0)也是一樣的道理,注意不同的檔案對應的不同的版本。