Android 15: java.lang.SecurityException, android.graphics.ImageDecoder$DecodeException в КотлинеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android 15: java.lang.SecurityException, android.graphics.ImageDecoder$DecodeException в Котлине

Сообщение Anonymous »

На самом деле основная цель моего вопроса — как отобразить URL-адрес изображения, хранящегося в Firebase (либо база данных, база данных реального времени, хранилище) в AsyncImage().
Загрузка URL-адреса моего изображения из базы данных Firebase, базы данных реального времени или хранилища Firebase успешно, но внутри прослушивателя AsyncImage() он выдает

Код: Выделить всё

java.lang.SecurityException: Calling uid ( 10213 ) does not have permission to access picker uri: content://media/picker/0/com.android.providers.media.photopicker/media/1000000020
в моем AndroidManifest.xml

Код: Выделить всё

AsyncImage(
model = ImageRequest.Builder(LocalContext.current)
.listener(
onError = { request, result ->

// error come here -------------->.......
println(result.throwable)
}
)
.data(image.toUri())
.build(),
contentDescription = null,
contentScale = ContentScale.Crop,
modifier = Modifier
.size(90.dp)
.clip(CircleShape)
.clickable {
onPickImage()
}
)

внутри AsyncImage() означает, что изображение не может отображаться из-за исключения java.lang.SecurityException, когда я перезапускаю свое приложение.
после этого я увидел доступ внешнее хранилище в Android 15 на YouTube, тогда оно работает, означает, что я не получаю URL-адрес изображения из базы данных Firebase, но я использую весь доступ к внешнему хранилищу (все изображения галереи), и я получаю последнее выбранное изображение, которое выбирает пользователь, и получаю этот URL-адрес изображения и использовать внутри моего проект, а затем загрузите этот URL-адрес внутри AsynImage().
но я хочу использовать Firebase, поэтому я пытаюсь сохранить изображение в базе данных реального времени Firebase, а затем
он успешно сохраняется и также успешно извлекается

Код: Выделить всё

fun loadUserImage(
onLoadImage : (String) -> Unit ,
onLoadImageError : (String) -> Unit
){
database.getReference().child(currentFileName)
.addValueEventListener(
object  : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
currentImage = snapshot.ref.toString()
println("snapshot : ${snapshot.value} , image : $currentImage")
onLoadImage(currentImage)
}

override fun onCancelled(error: DatabaseError) {
onLoadImageError(error.message)
}
}
)
}
Внутри onLoadImage я получаю URL-адрес изображения, например

Код: Выделить всё

image : https://fir-project-655c8-default-rtdb.firebaseio.com
затем внутри прослушивателя AsynImage() я также получил ошибку, и изображение не загружается при переустановке приложения

Код: Выделить всё

android.graphics.ImageDecoder$DecodeException: Failed to create image decoder with message 'unimplemented'Input contained an error.
Я прочитал много ответов, но они устарели и в основном написаны на Java.
Как мы можем устранить эту ошибку?

Подробнее здесь: https://stackoverflow.com/questions/791 ... derdecodee
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»