Java 为什么BitmapFactory.decodeFile返回null?

Java 为什么BitmapFactory.decodeFile返回null?,java,android,bitmapfactory,Java,Android,Bitmapfactory,我正在试验android FaceDetector。 我需要使用位图文件(faces.bmp来自一张合影),因为我还没有找到在android模拟器中使用android摄像头的方法。 但是BitmapFactory.decodeFile返回null,并且文档仅说明如果位图无法解码,它将返回null。它只是一个24位的.bmp文件。我正在Windows7上使用Eclipse。我是否错误地指定了路径名?我是否需要使用24位.bmp文件以外的其他文件 public class MyFaces exten

我正在试验android FaceDetector。 我需要使用位图文件(faces.bmp来自一张合影),因为我还没有找到在android模拟器中使用android摄像头的方法。 但是BitmapFactory.decodeFile返回null,并且文档仅说明如果位图无法解码,它将返回null。它只是一个24位的.bmp文件。我正在Windows7上使用Eclipse。我是否错误地指定了路径名?我是否需要使用24位.bmp文件以外的其他文件

public class MyFaces extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final int width = 600;
        final int height = 600;
        final int maxFaces = 8;
        FaceDetector faceDetector = new FaceDetector(width, height, maxFaces);
        String pathName = "../res/drawable-hdpi/faces.bmp";
        try {
         Bitmap bitmap = BitmapFactory.decodeFile(pathName);
         Face faces[] = new Face[maxFaces];
            int nFaces = faceDetector.findFaces(bitmap, faces);
            Log.d(this.getClass().toString(), "Faces: " + nFaces);
  } catch (Exception e) {
   Log.e(this.getClass().toString(), e.getMessage(), e);
  }
    }
}

如果您只是在测试,则替换
Bitmap Bitmap=BitmapFactory.decodeFile(路径名)您可以使用:

Bitmap bitmap = BitmapFactory.decodeResource(R.drawable.faces);

@杰克纳德对不起,这是怎么回答你问题的?你没问decodefile如何返回空值吗。。这不是跳过了这一切吗?@baash05是的,它跳过了这个问题,因为他只是用它来测试。正确的答案是。。因为您的资源文件在手持设备上的路径与在桌面上的路径不同。。该文件不存在,null是正确答案。