最近,我在使用Ionic 3的Image Resizer plugin时遇到了问题。正如标题所述,它不适用于运行Android Oreo的设备。我已经尝试过像Nougat 7.0这样的旧版本,并且工作正常。
这是我的代码:
async resizeImage(uri: any) {
let options = {
uri: uri,
folderName: 'myApp',
quality: 20,
width: 250,
height: 250
} as ImageResizerOptions;
return await this.imageResizer
.resize(options)
.then((filePath: string) => {
// it does not execute this function
return filePath
})
.catch(e => {
// It runs the catch() section insted of then()
console.log(e)
});
}
这是catch子句引发的错误:
尝试在空对象引用上调用虚拟方法'java.lang.String android.net.Uri.toString()'
这是我的离子信息:
cli packages:
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : 6.5.0
local packages:
@ionic/app-scripts : 1.3.7
Cordova Platforms : android 6.4.0 browser 5.0.3 ios 4.3.1 windows 4.4.2
Ionic Framework : ionic-angular 3.2.1
System:
Android SDK Tools : 26.1.1
Node : v7.10.1
npm : 5.8.0
OS : Windows 7
我已经尝试过重新安装插件。
有关如何解决此问题的任何提示?
答案 0 :(得分:0)
欢迎使用StackOverflow!
在处理Cordova插件时,请确保检查其github repository,因为其他一些用户可能会遇到相同的错误,并且他们可能知道如何修复或至少绕过它。
错误
已在 this github issue 中报告了尝试在空对象引用上调用虚拟方法'java.lang.String android.net.Uri.toString()'
,并创建了两个修复请求的拉取请求: PR-54 和 {{3} } 。 const b = new Map()
mapExtend(b).get(1)
已在25天前(Uncaught TypeError: Method Map.prototype.get called on incompatible receiver #<MapExtend>
at MapExtend.get (<anonymous>)
at <anonymous>:1:14
)合并到PR-55
分支中。
该插件的最新版本已在master
上发布,因此该修复程序未包含在其中。同时,您可以像这样从Jul 31, 2018
分支(PR-55)安装插件:
21 Jun, 2108
并检查错误是否已在那里修复,因为PR已在该分支中合并。