У меня проблема с моим Android-приложением. Я использую MediaStore.ACTION_IMAGE_CAPTURE
, чтобы сделать снимок с камеры. Он работал на всех большинстве устройств, но я получил следующие аварийные ошибки на устройстве DroidX с рынка Android.
Я думаю, что imageCaptureUri
не может иметь значение NULL в этом случае. Так что это не причина.
У вас есть идеи? Это ошибка прошивки?
java.lang.NullPointerException в Это работало на всех большинстве устройств, но у меня возникли следующие аварийные ошибки на устройстве DroidX ...
У меня проблема с моим Android-приложением. Я использую
MediaStore.ACTION_IMAGE_CAPTURE
, чтобы сделать снимок с камеры. Он работал на всех большинстве устройств, но я получил следующие аварийные ошибки на устройстве DroidX с рынка Android.Я думаю, что
imageCaptureUri
не может иметь значение NULL в этом случае. Так что это не причина.У вас есть идеи? Это ошибка прошивки?
java.lang.NullPointerException в Это работало на всех большинстве устройств, но у меня возникли следующие аварийные ошибки на устройстве DroidX ...
У меня проблема с моим Android-приложением. Я использую
MediaStore.ACTION_IMAGE_CAPTURE
, чтобы сделать снимок с камеры. Он работал на всех большинстве устройств, но я получил следующие аварийные ошибки на устройстве DroidX с рынка Android.Я думаю, что
imageCaptureUri
не может иметь значение NULL в этом случае. Так что это не причина.У вас есть идеи? Это ошибка прошивки?
java.lang.NullPointerException в
Я думаю, что
imageCaptureUri
не может иметь значение NULL в этом случае. Так что это не причина.У вас есть идеи? Это ошибка прошивки?
java.lang.NullPointerException в
Я думаю, что
imageCaptureUri
не может иметь значение NULL в этом случае. Так что это не причина.У вас есть идеи? Это ошибка прошивки?
java.lang.NullPointerException в android.content.ContentResolver.openInputStream (ContentResolver.java:286) в com.eb.android.activity.AddActivity.getBase64Receipt (AddActivity.java:193) в com.eb.android.activity.AddActivity.publishReceipt (AddActivity.java:204) в com.eb.android.activity.AddActivity.access $ 0 (AddActivity.java:203) в com.eb.android.activity.AddActivity $ 1.run (AddActivity.java:50) в java.lang.Thread.run (Thread.java:1102)
java.lang.NullPointerException в android.content.ContentResolver.openInputStream (ContentResolver.java:288) в com.eb.android.activity.AddActivity.getBase64Receipt (AddActivity.java:193) в com.eb.android.activity.AddActivity.publishReceipt (AddActivity.java:204) в com.eb.android.activity.AddActivity.access $ 0 (AddActivity.java:203) в com.eb.android.activity.AddActivity $ 1.run (AddActivity.java:50) в java.lang.Thread.run (Thread.java:1096)
Это моя реализация:
public class AddActivity extends Activity { public static final int TAKE_RECEIPT = 2; private Uri imageCaptureUri; private Runnable submitReceiptRunnable = new Runnable() { public void run() { publishReceipt(); } }; private ProgressDialog progressDialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add); registerListeners(); } public void onActivityResult(int reqCode, int resultCode, Intent data) { super.onActivityResult(reqCode, resultCode, data); switch (reqCode) { case (TAKE_RECEIPT): takeReceiptCallback(resultCode, data); break; } } private void registerListeners() { ImageView addReceiptButton = (ImageView) findViewById(R.id.AddReceiptButton); addReceiptButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { takePictureFromCamera(); } }); } private void takePictureFromCamera() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); imageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "tmp_receipt_" + String.valueOf(System.currentTimeMillis()) + ".jpg")); intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageCaptureUri); intent.putExtra("return-data", true); startActivityForResult(intent, TAKE_RECEIPT); } private void takeReceiptCallback(int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { submitReceipt(); } } private void submitReceipt() { Thread thread = new Thread(null, submitReceiptRunnable); thread.start(); progressDialog = ProgressDialog.show(this, "Please wait...", "Publishing receipt ...", true); } private String getBase64Receipt() { try { InputStream inputStream = getContentResolver().openInputStream(imageCaptureUri); byte[] bytes = CommonUtil.getBytesFromInputStream(inputStream); return Base64.encodeBytes(bytes); } catch (IOException e) { Log.e(TAG, e.getMessage(), e); } return null; } private void publishReceipt() { String receipt = getBase64Receipt(); ... } }