Вам потребуется предоставить дополнительную информацию о вашей проблеме, например фрагмент кода, который вы используете. Если вы хотите узнать, когда / почему метод BitmapFactory.decodeFile
вернет значение NULL, вы можете непосредственно прочитать его исходный код: http://casidiablo.in/BitmapFactory
Например, одна из причин, по которой BitmapFactory.decodeFile
возвращает ноль, - это проблема с открытием файла. Любопытно, что разработчики ничего не регистрируют с такой проблемой ... посмотрите на комментарий "ничего не делать. Если исключение произошло при открытии, bm будет нулевым."
public static Bitmap decodeFile(String pathName, Options opts) {
Bitmap bm = null;
InputStream stream = null;
try {
stream = new FileInputStream(pathName);
bm = decodeStream(stream, null, opts);
} catch (Exception e) {
/* do nothing.
If the exception happened on open, bm will be null.
*/
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
// do nothing here
}
}
}
return bm;
}
Как видите, BitmapFactory.decodeFile
не работает автономно ... но использует некоторые другие методы класса BitmapFactory
(например, BitmapFactory.decodeStream
, BitmapFactory.nativeDecodeStream
, BitmapFactory.finishDecode
и т. Д.) , Проблема может заключаться в одном из этих методов, поэтому на вашем месте я бы попытался прочитать и понять, как они работают, чтобы я мог знать, в каких случаях они возвращают ноль.