Anonymous
Невозможно декодировать поток: filenotfoundexception
Сообщение
Anonymous » 02 апр 2025, 06:25
В моей базе данных у меня есть для каждой записи один URI на картинке на моем мобильном телефоне. Чтобы отобразить его на телефоне, для ListView есть пользовательский адаптер. Теперь я хочу отобразить изображение в ListView и получить следующее сообщение об ошибке: < /p>
Код: Выделить всё
05-13 12:20:34.234: E/BitmapFactory(17684): Unable to decode stream: java.io.FileNotFoundException: /external/images/media/10139: open failed: ENOENT (No such file or directory)
BitmapDrawable: cannot decode external/images/media/10139
< /code>
Это происходит на этой функции: < /p>
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolderEreignis holder;
if(convertView == null){
convertView = inflator.inflate(R.layout.list_ereignis, parent, false);
holder = new ViewHolderEreignis((TextView) convertView.findViewById(R.id.enullline), (TextView) convertView.findViewById(R.id.efirstLine), (ImageView) convertView.findViewById(R.id.eimgv));
convertView.setTag(holder);
}
else{
holder = (ViewHolderEreignis) convertView.getTag();
}
Ereignis ki = (Ereignis) getItem(position);
holder.getEreignisname().setText(ki.getEreignisname());
holder.getEreignisdatum().setText(ki.getEreignisZeit());
Uri uri = Uri.parse(ki.getEreignisbild());
BitmapDrawable b = new BitmapDrawable(ki.getEreignisbild());
System.out.println("ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ" + uri.getPath());
holder.getEreignisbild().setImageDrawable(b);
return convertView;
}
< /code>
Как вы видите, я вывожу URI изображения, которое выглядит так: < /p>
external/images/media/10139
< /code>
кто -то знает эту ошибку? < /p>
edit: < /strong>
Вот код, в котором я добавляю изображение: < /p>
ContentValues values = new ContentValues();
String TITLE = null;
values.put(MediaStore.Images.Media.TITLE, TITLE);
String DESCRIPTION = null;
values.put(MediaStore.Images.Media.DESCRIPTION, DESCRIPTION);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
System.out.println("VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVvv" + imageUri.getPath());
startActivityForResult(intent, IMAGE_CAPTURE);
< /code>
edit2: < /strong> < /p>
Вот код, как я добавляю ссылку в базу данных: < /p>
public void insertereignis(String ename, String ezeit, String egenaueres, String ebild, int kindid){
long rowId = -1;
try{
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
System.out.println(ename + ezeit + egenaueres);
cv.put(EREIGNISNAME, ename);
cv.put(EREIGNISZEIT, ezeit);
cv.put(EREIGNISGENAUERES, egenaueres);
cv.put(EREIGNISBILD, ebild);
System.out.println("GRIAISDALSDJLASJDLKASJDKLAJSDLKJFS" + ebild);
cv.put(KINDID, kindid);
rowId = db.insert(TABLE_NAME_EREIGNIS, null, cv);
}
catch (SQLiteException e){
Log.e(TAG, "insert() Ereignis", e);
}
finally{
Log.d(TAG, "insert(): Ereignis rowId=" + rowId);
}
}
Значение ebild IS/Extron/Images/Media/10146
Подробнее здесь:
https://stackoverflow.com/questions/165 ... dexception
1743564315
Anonymous
В моей базе данных у меня есть для каждой записи один URI на картинке на моем мобильном телефоне. Чтобы отобразить его на телефоне, для ListView есть пользовательский адаптер. Теперь я хочу отобразить изображение в ListView и получить следующее сообщение об ошибке: < /p> [code]05-13 12:20:34.234: E/BitmapFactory(17684): Unable to decode stream: java.io.FileNotFoundException: /external/images/media/10139: open failed: ENOENT (No such file or directory) BitmapDrawable: cannot decode external/images/media/10139 < /code> Это происходит на этой функции: < /p> @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolderEreignis holder; if(convertView == null){ convertView = inflator.inflate(R.layout.list_ereignis, parent, false); holder = new ViewHolderEreignis((TextView) convertView.findViewById(R.id.enullline), (TextView) convertView.findViewById(R.id.efirstLine), (ImageView) convertView.findViewById(R.id.eimgv)); convertView.setTag(holder); } else{ holder = (ViewHolderEreignis) convertView.getTag(); } Ereignis ki = (Ereignis) getItem(position); holder.getEreignisname().setText(ki.getEreignisname()); holder.getEreignisdatum().setText(ki.getEreignisZeit()); Uri uri = Uri.parse(ki.getEreignisbild()); BitmapDrawable b = new BitmapDrawable(ki.getEreignisbild()); System.out.println("ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ" + uri.getPath()); holder.getEreignisbild().setImageDrawable(b); return convertView; } < /code> Как вы видите, я вывожу URI изображения, которое выглядит так: < /p> external/images/media/10139 < /code> кто -то знает эту ошибку? < /p> edit: < /strong> Вот код, в котором я добавляю изображение: < /p> ContentValues values = new ContentValues(); String TITLE = null; values.put(MediaStore.Images.Media.TITLE, TITLE); String DESCRIPTION = null; values.put(MediaStore.Images.Media.DESCRIPTION, DESCRIPTION); values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); System.out.println("VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVvv" + imageUri.getPath()); startActivityForResult(intent, IMAGE_CAPTURE); < /code> edit2: < /strong> < /p> Вот код, как я добавляю ссылку в базу данных: < /p> public void insertereignis(String ename, String ezeit, String egenaueres, String ebild, int kindid){ long rowId = -1; try{ SQLiteDatabase db = getWritableDatabase(); ContentValues cv = new ContentValues(); System.out.println(ename + ezeit + egenaueres); cv.put(EREIGNISNAME, ename); cv.put(EREIGNISZEIT, ezeit); cv.put(EREIGNISGENAUERES, egenaueres); cv.put(EREIGNISBILD, ebild); System.out.println("GRIAISDALSDJLASJDLKASJDKLAJSDLKJFS" + ebild); cv.put(KINDID, kindid); rowId = db.insert(TABLE_NAME_EREIGNIS, null, cv); } catch (SQLiteException e){ Log.e(TAG, "insert() Ereignis", e); } finally{ Log.d(TAG, "insert(): Ereignis rowId=" + rowId); } } [/code] Значение ebild IS/Extron/Images/Media/10146 Подробнее здесь: [url]https://stackoverflow.com/questions/16519821/unable-to-decode-stream-filenotfoundexception[/url]