Приложение вылетает на Android 10? - PullRequest
2 голосов
/ 04 марта 2020

Мое приложение было в магазине Play Store в течение 2 лет, и все работало нормально. Но неожиданно за последние две недели пользователи сообщили о сбое приложения во время его использования.

Все сбои предназначены для Android 10 пользователей.

Fabri c журнал отображает ошибку как,

java.lang.IllegalStateException: Only owner is able to interact with pending media content://media/external/images/media/259525
        at android.os.Parcel.createException(Parcel.java:2079)
        at android.os.Parcel.readException(Parcel.java:2039)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188)
        at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:151)
        at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:705)
        at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1687)
        at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1503)
        at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1420)
        at android.graphics.ImageDecoder$ContentResolverSource.createImageDecoder(ImageDecoder.java:277)
        at android.graphics.ImageDecoder.decodeDrawableImpl(ImageDecoder.java:1743)
        at android.graphics.ImageDecoder.decodeDrawable(ImageDecoder.java:1736)
        at android.widget.ImageView.getDrawableFromUri(ImageView.java:1022)
        at android.widget.ImageView.resolveUri(ImageView.java:991)
        at android.widget.ImageView.setImageURI(ImageView.java:568)
        at androidx.appcompat.widget.AppCompatImageView.setImageURI(AppCompatImageView.java:116)
        at androidx.databinding.adapters.ImageViewBindingAdapter.setImageUri(ImageViewBindingAdapter.java:46)

То, что происходит на этом экране: пользователь должен сделать снимок экрана. Я сохраняю этот снимок экрана и показываю его позже ImageView. Я получаю снимок экрана с помощью URI.

Когда * я получаю изображение, используя URI.

  1. версия SDK для компиляции приложения: 28

1 Ответ

0 голосов
/ 04 марта 2020

Используйте провайдер файлов для URI изображения.

попробуйте этот код:

добавьте код AndroidManifest. xml

<application>
  <provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.mypackage.myprovider"
    android:exported="false"
    android:grantUriPermissions="true">
   <meta-data
     android:name="android.support.FILE_PROVIDER_PATHS"
     android:resource="@xml/provider_paths"/>
  </provider>
</application>

добавьте файл provider_paths. xml в папку xml в разделе res.

<paths xmlns:android="http://schemas.android.com/apk/res/android">
   <external-path name="external_files" path="."/>
</paths>

получите URI из нижнего кода в вашем классе активности.

final Uri data = FileProvider.getUriForFile(context, "myprovider", new File(file_path)); //here your image uri
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...