我是Android開發的新手,並且正在玩弄相機。我只是想創建一個簡單的應用程序,使用本機相機應用程序拍攝照片,並將該圖像的文件路徑還給我。簡單的Android相機應用 - 旋轉導致NullPointerException
我的工作很好,但我遇到了一個奇怪的錯誤。當我點擊按鈕啓動相機時,如果我在相機應用程序中更改了屏幕的方向,並且在退出相機之前切換不了(當我被問及是否要重新拍攝時按下完成按鈕或不),它會導致引發NullPointerException。
我在這裏有點損失,以至於如何計算出來,所以任何信息都會有幫助!
這裏是我的代碼至今:
package com.CameraTest;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class CameraTestActivity extends Activity
{
private static final int CAMERA_PIC_REQUEST = 1234;
protected Uri mCapturedImageURI;
protected TextView textview;
protected Button button;
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button1);
textview = (TextView) findViewById(R.id.textView1);
if (savedInstanceState != null) {
textview.setText(savedInstanceState.getString("textview"));
}
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
String fileName = "temp.jpg";
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);
startActivityForResult(intent, CAMERA_PIC_REQUEST);
}
});
}
@Override protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putString("textview", textview.getText().toString());
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_PIC_REQUEST && resultCode == -1)
{
String[] projection = { MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(this.mCapturedImageURI, projection, null, null, null);
int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String capturedImageFilePath = cursor.getString(column_index_data);
this.textview.setText("File Path:" + capturedImageFilePath);
}
}
}
請發佈sta cktrace –
是的,logcat錯誤告訴你一個NullPointerException的確切的一行,並保存其他寶貴的信息。 – Sam