У меня возникла простая проблема, которая может показаться легкой, однако, когда я выбираю изображение из галереи и пытаюсь установить его в образе просмотра в onActivityResult, ошибка появится.Невозможно получить растровое изображение из галереи с Intent.ACTION_PICK
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://media/external/images/media/35 }} to activity {com.mypackagename/com.mypackagename.SQLiteActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
Эта ошибка должна быть вызвана нулевым объектом. Это означает, что данные не были получены? Я полагаю, что настройки, которые я сделал, не имели проблем, однако я, возможно, что-то пропустил. Я установил образец кода ниже.
Это код, который вызывает галерею
public void settingImage(View v){
Intent i = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);
}
Этот код предназначен для получения результатов
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data != null) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getApplicationContext().getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
// Log.d("Path", picturePath);
//sampleimage.setImageBitmap(BitmapFactory.decodeFile(picturePath));
// imgPath = picturePath;
icontext.setText(picturePath);
cursor.close();
} else {
}
}
Вот некоторые настройки
private static int RESULT_LOAD_IMAGE = 1;
установка основной SDK
minSdkVersion 14
targetSdkVersion 22
'icontext' является нулевым, по этой причине NullPointe Исключено исключение rException. Где вы его инициализируете? Пожалуйста, напишите больше кода –
Кроме того, вы сказали, что пытаетесь настроить его в «ImageView», но вы используете «TextView» в своем коде. Не могли бы вы дважды проверить, что вы не просто ссылаетесь на неправильный объект? –
Нет, это означает, что ваш код в 'onActivityResult()' нарушен, особенно на современных устройствах Android. ['Uri' не файл] (https://commonsware.com/blog/2014/07/04/uri-not-necessarily-file.html); вы не можете достоверно преобразовать 'Uri' в некоторый путь к файлу. – CommonsWare