提问人:M U BEEN 提问时间:6/28/2023 最后编辑:M U BEEN 更新时间:7/3/2023 访问量:111
在 Android 12 和 13 上使用 React Native 后台上传库时,应用崩溃而没有错误日志
App crashes without error logs when using React Native background upload lib on Android 12 and 13
问:
我在尝试使用 React Native 后台上传库从我的 Android 手机上传图像时遇到了一个严重问题。尽管进行了广泛的故障排除,但我无法确定问题的原因。以下是详细信息:
问题:每当我尝试上传图像时,我的应用程序都会突然崩溃,而不会生成任何错误日志或堆栈跟踪。我什至尝试使用
"adb logcat *:S ReactNative:V ReactNativeJS:V"
命令查看日志,但未显示错误或其他信息。
相同的代码在 Android 10 和 11 上运行良好,但在使用 Android 12 和 13 时,该应用程序始终崩溃。
try {
await Upload.startUpload({
...options,
...{maxRetries: 1, timeout: 100000},
})
.then(async uploadId => {
console.log(
`Upload started with options: ${JSON.stringify(options)}`,
);
this.setState({uploadId, progress: 0});
Upload.addListener('progress', uploadId, data => {
this.handleProgress(+data.progress);
console.log(`Progress: ${data.progress}%`);
if (data.progress == 100) {
console.log('this.uploader', this.uploader);
}
});
Upload.addListener('error', uploadId, data => {
console.log(`Error: ${data.error}%`);
this.props.feedSavingFailuire(data.error);
Upload.cancelUpload(uploadId);
});
Upload.addListener('completed', uploadId, data => {
if (
this.state.initialResponseId != JSON.parse(data.responseBody).id
) {
this.setState({
initialResponseId: JSON.parse(data.responseBody).id,
});
this.props.uploadingCompleted(JSON.parse(data.responseBody));
} else {
this.props.uploadingCompleted(JSON.parse(data.responseBody));
}
});
})
.catch(function(err) {
console.log('Upload error!', err);
});
} catch (err) {
console.log('err', err);
alert(err);
}
更新:
经过一些调试,我已经确定了崩溃的原因。在崩溃之前,我收到此异常消息
要以 S+(版本 31 及更高版本)为目标,必须在创建 PendingIntent 时指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE。强烈建议使用FLAG_IMMUTABLE。仅当 PendingIntent 需要可变特定功能(如内联答复或气泡)时,才使用 FLAG_MUTABLE。
我尝试了在互联网上找到的各种解决方案,但没有一个解决了这个问题。
答: 暂无答案
评论