Skip to content

App crashes while uploading image - android.app.RemoveServiceException: can't deliver broadcast #89

@NickIliev

Description

@NickIliev

From @neddinn on November 28, 2017 7:32

Tell us about the problem

The app crashes when trying to upload an image.
Error:

System.err: java.lang.RuntimeException: Error receiving broadcast Intent { act=net.gotev.uploadservice.broadcast.status flg=0x10 (has extras) } in com.tns.gen.net.gotev.uploadservice.UploadServiceBroadcastReceiver_ftns_modules_nativescript-background-http_background-http_l9_c79__@4255a258
System.err: 	at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:782)
System.err: 	at android.os.Handler.handleCallback(Handler.java:733)
System.err: 	at android.os.Handler.dispatchMessage(Handler.java:95)
System.err: 	at android.os.Looper.loop(Looper.java:146)
System.err: 	at android.app.ActivityThread.main(ActivityThread.java:5602)
System.err: 	at java.lang.reflect.Method.invokeNative(Native Method)
System.err: 	at java.lang.reflect.Method.invoke(Method.java:515)
System.err: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
System.err: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
System.err: 	at dalvik.system.NativeStart.main(Native Method)
System.err: Caused by: com.tns.NativeScriptException: Cannot find object id for instance=com.tns.gen.net.gotev.uploadservice.UploadServiceBroadcastReceiver_ftns_modules_nativescript-background-http_background-http_l9_c79__@4255a258
System.err: 	at com.tns.Runtime.callJSMethodImpl(Runtime.java:959)
System.err: 	at com.tns.Runtime.callJSMethod(Runtime.java:953)
System.err: 	at com.tns.Runtime.callJSMethod(Runtime.java:937)
System.err: 	at com.tns.Runtime.callJSMethod(Runtime.java:929)
System.err: 	at com.tns.gen.net.gotev.uploadservice.UploadServiceBroadcastReceiver_ftns_modules_nativescript-background-http_background-http_l9_c79__.onProgress(net.gotev.uploadservice.UploadServiceBroadcastReceiver.java)
System.err: 	at net.gotev.uploadservice.UploadServiceBroadcastReceiver.onReceive(UploadServiceBroadcastReceiver.java:40)
System.err: 	at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:772)
System.err: 	... 9 more
ActivityManager: Process org.nativescript.fo3mobilenativescript (pid 27172) (adj 0) has died.

Which platform(s) does your issue occur on?

Android

Please provide the following version numbers that your issue occurs with:

I'm using nativescript-background-http v3.0.0 & tns-core-modules v3.3.0

  • CLI: 3.3.1
  • Cross-platform modules: tns-core-modules v3.3.0
  • Runtime(s): tns-android v3.2.0
  • Plugin(s): nativescript-background-http v3.0.0

Please tell us how to recreate the issue in as much detail as possible.

This error is quite erratic but it mostly doesn't work, after taking a photo using camera plugin and saving or even selecting an image from the gallery, when I try to upload, it crashes the application and throws the aforementioned error.

Is there code involved? If so, please share the minimal amount of code needed to recreate the problem.

    var camera = require('nativescript-camera');
    var fs = require('file-system');
    var imageSource = require('image-source');
    var bghttp = require('nativescript-background-http');
    var session = bghttp.session('image-upload');
    
    camera.takePicture()
      .then(function (imageAsset) {
        var hash = (new Date()).getTime() + Math.floor(Math.random() * 20);
        let folder = fs.knownFolders.documents();
        let path = fs.path.join(folder.path, `Test-${hash}.png`);
        return imageSource.fromAsset(imageAsset)
          .then(function (res) {
            res.saveToFile(path, 'png');            
            var request = {
              url: "http://httpbin.org/post",
              method: "POST",
              headers: {
                "Content-Type": "application/octet-stream",
                "File-Name": 'randomName'
              },
              description: "{ 'uploading': " + 'randomName' + " }"
            };
            var task = session.uploadFile(path, request);

            task.on("progress", logEvent);
            task.on("error", logEvent);
            task.on("complete", logEvent);

            function logEvent(e) {
              console.log("currentBytes: " + e.currentBytes);
              console.log("totalBytes: " + e.totalBytes);
              console.log("eventName: " + e.eventName);
            }

            return {};
          });
      }).catch(function (err) {
        console.log(`Error -> ${err.message}`);
      });

Copied from original issue: NativeScript/NativeScript#5098

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions