sarriaroman / photoviewer

PhotoViewer Cordova Plugin
MIT License
157 stars 213 forks source link

Attempt to invoke virtual method 'boolean org.json.JSONObject.has(java.lang.String)' on a null object reference #169

Open Venan24 opened 5 years ago

Venan24 commented 5 years ago

I'm trying to use this plugin to display photo and the android phone crashes (iOS crash also).

My app is running following: Ionic: 4.8.0 Cordova: 8.1.2 (corova-lib@8.1.1) Angular: 7.1.4 Android Version: 9 PKQ1.180729.001 (Xiaomi Mi Mix 3) com-sarriaroman-photoviewer: "1.2.1"

Funtion for showing image:

showImage(file: string): void {
      const imageUri = this.loadedImageUri;
      const headers = {
        authorization: this.authService.getAuthorizationHeader()
      };

      this.photoViewer.show(
        imageUri,
        'Some Description',
        { headers: JSON.stringify(headers) });
}

Error from Logcat: 2019-04-03 16:55:54.878 17150-17150/io.ionic.starter E/AndroidRuntime: FATAL EXCEPTION: main Process: io.ionic.starter, PID: 17150 java.lang.RuntimeException: Unable to start activity ComponentInfo{io.ionic.starter/com.sarriaroman.PhotoViewer.PhotoActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.json.JSONObject.has(java.lang.String)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:201) at android.app.ActivityThread.main(ActivityThread.java:6806) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.json.JSONObject.has(java.lang.String)' on a null object reference at com.sarriaroman.PhotoViewer.PhotoActivity.setOptions(PhotoActivity.java:175) at com.sarriaroman.PhotoViewer.PhotoActivity.loadImage(PhotoActivity.java:202) at com.sarriaroman.PhotoViewer.PhotoActivity.onCreate(PhotoActivity.java:91) at android.app.Activity.performCreate(Activity.java:7210) at android.app.Activity.performCreate(Activity.java:7201) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:201)  at android.app.ActivityThread.main(ActivityThread.java:6806)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)  2019-04-03 16:55:54.907 17150-17150/io.ionic.starter E/MQSEventManagerDelegate: failed to get MQSService.

IntelliJAbhishek commented 5 years ago

I'm getting same error using with ionic 3.

Ironolife commented 5 years ago

We encountered the same problem, and it is solved by adding picassoOptions parameter in the show method.

this.photoViewer.show(url, title, {share: true, closeButton: true, copyToReference: false, headers: "", picassoOptions : {}});