uni.chooseMedia({
count: 1,
mediaType: ["image"],
sourceType: ["album"],
sizeType: ["compressed"],
success(res) {
const path = res.tempFiles?.[0]?.tempFilePath;
if (!path) return reject(false);
resolve(path);
},
fail: function (e) {
reject(e);
},
});

- 发布:2025-04-30 11:56
- 更新:2025-04-30 11:56
- 阅读:105
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11
手机系统: Android
手机系统版本号: Android 10
手机厂商: 华为
手机机型: HUAWEI HWBLA
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: CLI
CLI版本号: 4.36
示例代码:
操作步骤:
manifest中配置
"excludePermissions" : [
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
]
在安卓10中调用
uni.chooseMedia({
count: 1,
mediaType: ["image"],
sourceType: ["album"],
sizeType: ["compressed"],
success(res) {
const path = res.tempFiles?.[0]?.tempFilePath;
if (!path) return reject(false);
resolve(path);
},
fail: function (e) {
reject(e);
},
});
选择完图片后,等待2s,然后闪退
manifest中配置
"excludePermissions" : [
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
]
在安卓10中调用
uni.chooseMedia({
count: 1,
mediaType: ["image"],
sourceType: ["album"],
sizeType: ["compressed"],
success(res) {
const path = res.tempFiles?.[0]?.tempFilePath;
if (!path) return reject(false);
resolve(path);
},
fail: function (e) {
reject(e);
},
});
选择完图片后,等待2s,然后闪退
预期结果:
能正常使用
能正常使用
实际结果:
安卓10版本手机 在选择图片后闪退
安卓10版本手机 在选择图片后闪退
bug描述:
因为谷歌政策 "excludePermissions" : [
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
]
在 11/12/13/14 正常
当前:
安卓10版本手机 在选择图片后闪退
预期:
能正常使用
Exception java.lang.RuntimeException:
at android.app.ActivityThread.deliverResults (ActivityThread.java:5782)
at android.app.ActivityThread.handleSendResult (ActivityThread.java:5823)
at android.app.servertransaction.ActivityResultItem.execute (ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:149)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:103)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2613)
at android.os.Handler.dispatchMessage (Handler.java:110)
at android.os.Looper.loop (Looper.java:219)
at android.app.ActivityThread.main (ActivityThread.java:8668)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1109)
Caused by java.lang.SecurityException:
at android.os.Parcel.createException (Parcel.java:2090)
at android.os.Parcel.readException (Parcel.java:2058)
at android.os.Parcel.readException (Parcel.java:2006)
at android.app.IUriGrantsManager$Stub$Proxy.takePersistableUriPermission (IUriGrantsManager.java:280)
at android.content.ContentResolver.takePersistableUriPermission (ContentResolver.java:2485)
at uts.sdk.modules.DCloudUniMedia.SystemPickerActivity.compress (SystemPickerActivity.java:117)
at uts.sdk.modules.DCloudUniMedia.SystemPickerActivity.onChooseFinish (SystemPickerActivity.java:107)
at uts.sdk.modules.DCloudUniMedia.SystemPickerActivity.lambda$onCreate$0$uts-sdk-modules-DCloudUniMedia-SystemPickerActivity (SystemPickerActivity.java:82)
at uts.sdk.modules.DCloudUniMedia.SystemPickerActivity$$ExternalSyntheticLambda1.onActivityResult (D8$$SyntheticClass)
at androidx.activity.result.ActivityResultRegistry.doDispatch (ActivityResultRegistry.kt:371)
at androidx.activity.result.ActivityResultRegistry.dispatchResult (ActivityResultRegistry.kt:331)
at androidx.activity.ComponentActivity.onActivityResult (ComponentActivity.kt:786)
at androidx.fragment.app.FragmentActivity.onActivityResult (FragmentActivity.java:164)
at android.app.Activity.dispatchActivityResult (Activity.java:8541)
at android.app.ActivityThread.deliverResults (ActivityThread.java:5775)
Caused by android.os.RemoteException: Remote stack trace:
at com.android.server.uri.UriGrantsManagerService.takePersistableUriPermission (UriGrantsManagerService.java:355)
at android.app.IUriGrantsManager$Stub.onTransact (IUriGrantsManager.java:139)
at android.os.Binder.execTransactInternal (Binder.java:1028)
at android.os.Binder.execTransact (Binder.java:1001)
0 个回复