nativescript-background-http
                                
                                 nativescript-background-http copied to clipboard
                                
                                    nativescript-background-http copied to clipboard
                            
                            
                            
                        An uncaught error on background image uploading
An uncaught Exception occurred on "main" thread.
Error receiving broadcast Intent { act=com.plgroup.app.uploadservice.broadcast.status flg=0x10 pkg=com.plgroup.app (has extras) } in net.gotev.uploadservice.UploadServiceBroadcastReceiver_vendor_92371_85_@91bf10a
StackTrace:
java.lang.RuntimeException: Error receiving broadcast Intent { act=com.plgroup.app.uploadservice.broadcast.status flg=0x10 pkg=com.plgroup.app (has extras) } in net.gotev.uploadservice.UploadServiceBroadcastReceiver_vendor_92371_85_@91bf10a
	at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1560)
	at android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA.run(Unknown Source:2)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:214)
	at android.app.ActivityThread.main(ActivityThread.java:7356)

	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: com.tns.NativeScriptException: Calling js method onError failed
TypeError: Cannot read property 'getBodyAsString' of null
	at com.tns.Runtime.callJSMethodNative(Native Method)
	at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242)
	at com.tns.Runtime.callJSMethodImpl(Runtime.java:1122)
	at com.tns.Runtime.callJSMethod(Runtime.java:1109)
	at com.tns.Runtime.callJSMethod(Runtime.java:1089)
	at com.tns.Runtime.callJSMethod(Runtime.java:1081)
	at net.gotev.uploadservice.UploadServiceBroadcastReceiver_vendor_92371_85_.onError(Unknown Source:29)
	at net.gotev.uploadservice.UploadServiceBroadcastReceiver.onReceive(UploadServiceBroadcastReceiver.java:43)
	at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1550)
	... 8 more

 

I have exactly the same issue with responseCode -1
{
JS:   "eventName": "progress",
JS:   "object": {
JS:     "_observers": {
JS:       "progress": [
JS:         {}
JS:       ],
JS:       "error": [
JS:         {}
JS:       ],
JS:       "complete": [
JS:         {}
JS:       ],
JS:       "responded": [
JS:         {}
JS:       ]
JS:     },
JS:     "_session": {
JS:       "_id": "image-upload-bg-http"
JS:     },
JS:     "_id": "image-upload-bg-http{4}",
JS:     "_description": "{ 'uploading': 201911061645231201810021300161538485217.jpg }",
JS:     "_upload": 173,
JS:     "_totalUpload": 225738,
JS:     "_status": "uploading"
JS:   },
JS:   "currentBytes": 173,
JS:   "totalBytes": 225738
JS: }
JS: {
JS:   "eventName": "error",
JS:   "object": {
JS:     "_observers": {
JS:       "progress": [
JS:         {}
JS:       ],
JS:       "error": [
JS:         {}
JS:       ],
JS:       "complete": [
JS:         {}
JS:       ],
JS:       "responded": [
JS:         {}
JS:       ]
JS:     },
JS:     "_session": {
JS:       "_id": "image-upload-bg-http"
JS:     },
JS:     "_id": "image-upload-bg-http{4}",
JS:     "_description": "{ 'uploading': 201911061645231201810021300161538485217.jpg }",
JS:     "_upload": 173,
JS:     "_totalUpload": 225738,
JS:     "_status": "error"
JS:   },
JS:   "error": {},
JS:   "responseCode": -1,
JS:   "response": null
JS: }
It seems that this only effects some devices, I have the issue on the simulator (Pixel 3 XL API 29) and on a Huawei P20 Pro. On a Pixel 5 everything is fine.
@Cateye82 have you found any solutions or alternative to that
So far, unfortunately not, but I will investigate it more deeper. I keep you informed.
So far I found out that either the permission ist not working correctly, or the path is wrong: JS: java.io.FileNotFoundException: /storage/emulated/0/Download/201911061645231201810021300161538485217.jpg: open failed: EACCES (Permission denied)

The path seems to be right, so I take a closer look to the rights.
I implemented an additional check for the rights:
const permissions = require('nativescript-permissions');
permissions.requestPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE, "I need these permissions because I'm cool")
                .then( () => {
                    console.log("Woo Hoo, I have the power!");
                })
                .catch( () => {
                    console.log("Uh oh, no permissions - plan B time!");
                });
Output is:
JS: startActivityForResult 1231 JS: [[/storage/emulated/0/Download/201911061645231201810021300161538485217.jpg, 201911061645231201810021300161538485217.jpg, jpeg, image/jpeg]] JS: [{ JS: "name": "file", JS: "filename": "/storage/emulated/0/Download/201911061645231201810021300161538485217.jpg", JS: "mimeType": "image/jpeg" JS: }] JS: Woo Hoo, I have the power!
So the access is granted.
Ok I found the solution: https://github.com/NativeScript/nativescript-background-http/issues/263#issuecomment-681764178 At least it worked for me. Can you please proof it?
@Cateye82 #263 solution adding android:requestLegacyExternalStorage="true" to the AndroidManifest.xml doesn't help, I am still facing the same problem.
I am using the following tns versions:
"tns-android": { "version": "6.2.0" }, "tns-ios": { "version": "6.5.2" }
This is my AndroidManifest part for the rights:
<uses-sdk
			android:targetSdkVersion="29"/>
	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
	<uses-permission android:name="android.permission.INTERNET"/>
	<uses-permission android:name="android.permission.CAMERA"/>
	<uses-permission android:name="android.permission.CALL_PHONE" />
	<uses-permission android:name="android.permission.READ_USER_DICTIONARY"/>
	<uses-feature android:name="android.hardware.camera" android:required="false" />
	<uses-feature android:name="android.hardware.telephony" android:required="false" />
	<application
			android:name="com.tns.NativeScriptApplication"
			android:allowBackup="true"
			android:icon="@drawable/icon"
			android:label="************"
			android:theme="@style/AppTheme"
			android:requestLegacyExternalStorage="true">
Did you checked the source file and the path?