Я использую камеру для захвата изображения и установки возвращенного растрового изображения в изображение, но он падает на устройства OnePlus. Я проверил несколько устройств htc, и он работает отлично. Я проверил решения, и они сказали проверить код запроса, но я уже это делаю. В чем проблема?Camera Intent возвращает null только на некоторых устройствах
Вот код
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, 1);
}
});
и onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == -1) {
image = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
// Must compress the Image to reduce image size to make upload easy
image.compress(Bitmap.CompressFormat.PNG, 50, stream);
byte[] byte_arr = stream.toByteArray();
// Encode Image to String
encodedString = Base64.encodeToString(byte_arr, 0);
Uri selectedImageUri = data.getData();
img_path = getRealPathFromURI(selectedImageUri);
// Uri tempUri = getImageUri(getApplicationContext(), image);
imageView.setImageBitmap(image);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
}
}
и трассировки стека ошибок
STACK_TRACE = java.lang.RuntimeException: Сбой доставки результата ResultInfo { who = null, request = 1, result = -1, data = Intent { act = inline-d ata (имеет дополнительные функции)}} для активности {com.madhours/com.madhours.activities.ActivitySignUp}: java.lang.NullPointerException: попытка вызвать виртуальный метод 'java.lang.String android.net.Uri.getPath()»на нулевой объект ссылкой на android.app.ActivityThread.deliverResults (ActivityThread.java:3659) на android.app.ActivityThread.handleSendResult (ActivityThread.java:3702) в android.app.ActivityThread. доступ к $ 1300 (ActivityThread.java:155) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1366) в android.os.Handler.dispatchMessage (Handler.java:102) в android.os. Looper.loop (Looper.java:135) в android.app.ActivityThread.main (ActivityThread.java:5343) в java.lang.reflect.Method.invoke (собственный метод) в java.lang.reflect.Method.invoke (Method.java:372) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:905) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:700) Вызвано: java.lang.NullPointerException: Попытка вызвать виртуальный метод «java.lang.String android.net.Uri.getPath()» на нулевой объект ссылкой на com.madhours.activities.ActivitySignUp.getRealPathFromURI (ActivitySignUp.java:134) в ком .madhours.activities.ActivitySignUp.onActivityResult (ActivitySignUp.java:116) в android.app.Activity.dispatchActivityResult (Activity.java:6218) на android.app.ActivityThread.deliverResults (ActivityThread.java:3655) ... подробнее 10 java.lang.NullPointerException: Попытка вызова виртуальной метод 'java.lang.String android.net.Uri.getPath()' на нулевой объект ссылкой на com.madhours.activities.ActivitySignUp.getRealPathFromURI (ActivitySignUp.java:134) на com.madhours.activities. ActivitySignUp.onActivityResult (ActivitySignUp.java:116) на android.app.Activity.dispatchActivityResult (Activity.java:6218) на android.app.ActivityThread.deliverResults (ActivityThread.java:3655) в т android.app.ActivityThread.handleSendResult (ActivityThread.java:3702) в android.app.ActivityThread.access $ 1300 (ActivityThread.java:155) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java: 1366) на android.os.Handler.dispatchMessage (Handler.java:102) на android.os.Looper.loop (Looper.java:135) на android.app.ActivityThread.main (ActivityThread.java:5343) в java.lang.reflect.Method.invoke (собственный метод) в java.lang.reflect.Method.invoke (Method.java:372) в com.android.internal.os .ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:905) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:700)
Как установить изображение в ImageView в onActivityResult? –
@VivekMishra: используйте свою любимую библиотеку для загрузки изображений (http://android-arsenal.com/tag/46), например [Picasso] (http://square.github.io/picasso/). – CommonsWare
с использованием Uri.fromFile (output) ?? потому что, если я использую данные, он дает исключение нулевого указателя –