[@nativescript/background-http] error Context.startForegroundService() did not then call Service.startForeground()
Opened this issue · 2 comments
Hello,
We are using @nativescript/background-http on NativeScript with Angular to upload photos, web API .net Core 3.1
We have this error
System.err: An uncaught Exception occurred on "main" thread.
System.err: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{6fabfc7 u0 it.openweb.next2u/net.gotev.uploadservice.UploadService}
System.err:
System.err: StackTrace:
System.err: android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{6fabfc7 u0 it.openweb.next2u/net.gotev.uploadservice.UploadService}
System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2052)
System.err: at android.os.Handler.dispatchMessage(Handler.java:107)
System.err: at android.os.Looper.loop(Looper.java:214)
System.err: at android.app.ActivityThread.main(ActivityThread.java:7710)
System.err: at java.lang.reflect.Method.invoke(Native Method)
System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Version numbers:
-CLI 7.1.1
"@nativescript/android": "7.0.1",
"@nativescript/ios": "7.1.0",
"@nativescript/background-http": "^5.0.1",
package.json:
"dependencies": {
"@angular/animations": "~11.0.5",
"@angular/common": "~11.0.5",
"@angular/compiler": "~11.0.5",
"@angular/core": "~11.0.5",
"@angular/forms": "~11.0.5",
"@angular/platform-browser": "~11.0.5",
"@angular/platform-browser-dynamic": "~11.0.5",
"@angular/router": "~11.0.5",
"@nativescript/angular": "~11.0.0",
"@nativescript/background-http": "^5.0.1",
"@nativescript/core": "^7.1.0",
"@nativescript/theme": "~3.0.1",
"@nativescript/types": "^7.1.0",
"@nativescript/webpack": "^4.0.0",
"jwt-decode": "^2.2.0",
"nativescript-ui-sidedrawer": "~9.0.3",
"reflect-metadata": "~0.1.13",
"rxjs": "~6.6.3",
"zone.js": "~0.11.3"
},
"devDependencies": {
"@angular/compiler-cli": "~11.0.5",
"@nativescript/android": "7.0.1",
"@nativescript/ios": "7.1.0",
"@ngtools/webpack": "~11.0.5",
"codelyzer": "~6.0.0",
"node-sass": "^4.14.1",
"tslint": "~6.1.3",
"typescript": "~4.0.0"
}
UploadFile.ts
public _uploadFile() {
const name = this.file.substr(this.file.lastIndexOf('/') + 1);
const description = `${name}`;
const request = {
url: `${this.avatarUrl}`,
method: 'POST',
utf8: true,
headers: {
"Content-Type": "multipart/form-data",
"File-Name": name
},
description: description,
androidAutoDeleteAfterUpload: false,
androidNotificationTitle: 'Uploading Product Image',
androidDisplayNotificationProgress:true
};
let task: Task;
let lastEvent = '';
const params = [
{ name: 'test', value: 'value' },
{ name: 'testInt', value: 10 },
{ name: 'bool', value: true },
{ name: 'fileToUpload', filename: this.file, mimeType: 'image/jpeg' },
];
task = this.session.multipartUpload(params, request);
function onEvent(e) {
if (lastEvent !== e.eventName) {
// suppress all repeating progress events and only show the first one
lastEvent = e.eventName;
} else {
return;
}
this.events.push({
eventTitle: e.eventName + ' ' + e.object.description,
eventData: JSON.stringify({
error: e.error ? e.error.toString() : e.error,
currentBytes: e.currentBytes,
totalBytes: e.totalBytes,
body: e.data,
responseCode: e.responseCode,
}),
});
}
task.on('progress', onEvent.bind(this));
task.on('error', onEvent.bind(this));
task.on('responded', onEvent.bind(this));
task.on('complete', onEvent.bind(this));
lastEvent = '';
this.tasks.push(task);
}
web API .net Core 3
[HttpPost("attachement")]
public async Task<ActionResult> UploadAttachement([FromForm] IFormFile file)
{
var attachement = new modelProfile
{
ContentType = file.ContentType,
name = file.FileName
};
using (var stream = file.OpenReadStream())
{
attachement.content = new byte[file.Length];
await stream.ReadAsync(attachement.content, 0, (int)file.Length);
};
await serviceUpload.uploadProfile(attachement);
return Ok();
}
Can you please help with this error and the way to fix it?
Thank you
I get this too, sometimes. Base/Original android project has very similar issue: gotev/android-upload-service#549 (which points to a StackOverflow question and a few answers). Worth keeping an eye on it.
I will check it.
Thank you