Ionic Image Resizer无法在Android Oreo上运行

时间:2018-08-24 20:06:48

标签: android ionic-framework plugins imageresizer

最近,我在使用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

我已经尝试过重新安装插件。

有关如何解决此问题的任何提示?

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow!

在处理Cordova插件时,请确保检查其github repository,因为其他一些用户可能会遇到相同的错误,并且他们可能知道如何修复或至少绕过它。

错误

  

尝试在空对象引用上调用虚拟方法'java.lang.String android.net.Uri.toString()'

已在 this github issue 中报告了

,并创建了两个修复请求的拉取请求: 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已在该分支中合并。