plugins icon indicating copy to clipboard operation
plugins copied to clipboard

[@nativescript/background-http] packagename - illegal argument exception

Open ahsih opened this issue 2 years ago • 3 comments

Issue Description

Hi guys,

When I try to use your background http to upload a file,

I noticed I am getting : Exception java.lang.RuntimeException: Unable to create service net.gotev.uploadservice.UploadService: java.lang.IllegalArgumentException: You have to set namespace to your app package name (context.packageName) in your Application subclass at android.app.ActivityThread.handleCreateService (ActivityThread.java:5086) at android.app.ActivityThread.-$$Nest$mhandleCreateService at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2428) at android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loopOnce (Looper.java:226) at android.os.Looper.loop (Looper.java:313) at android.app.ActivityThread.main (ActivityThread.java:8757) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067) Caused by java.lang.IllegalArgumentException: You have to set namespace to your app package name (context.packageName) in your Application subclass at net.gotev.uploadservice.UploadServiceConfig.getNamespace (UploadServiceConfig.kt:74) at net.gotev.uploadservice.UploadServiceConfig.getBroadcastNotificationAction (UploadServiceConfig.kt:234) at net.gotev.uploadservice.UploadServiceConfig.getBroadcastNotificationActionIntentFilter (UploadServiceConfig.kt:248) at net.gotev.uploadservice.observer.request.NotificationActionsObserver.register (NotificationActionsObserver.kt:31) at net.gotev.uploadservice.UploadService.onCreate (UploadService.kt:194) at android.app.ActivityThread.handleCreateService (ActivityThread.java:5073)

This is because in this file: https://github.com/NativeScript/plugins/blob/main/packages/background-http/index.android.ts line 30, we pass in the Utils.android.getApplication() but the inner method is looking for Utils.android.getApplication().packageName, whereas we get the packageName by Utils.android.getApplication().getPackageName() which can be null/empty, not sure if this is a bug?

Reproduction

  1. uploadFile
  2. close the app and reopen
  3. app crash.

Relevant log output (if applicable)

No response

Environment

No response

Please accept these terms

ahsih avatar Jun 21 '23 10:06 ahsih

I have started seeing this error recently as well (in Crashlytics). Android versions 10, 12, 13 A lot of Galaxy devices, but that could just be a popular brand for our users (S23, A13, S21, S20, S22, etc). Some other manufacturers as well.

This is not ALL android users. And I would suspect not every upload even for these users, but some condition must trigger it.

Fatal Exception: java.lang.RuntimeException
Unable to create service net.gotev.uploadservice.UploadService: java.lang.IllegalArgumentException: You have to set namespace to your app package name (context.packageName) in your Application subclass
Caused by java.lang.IllegalArgumentException
You have to set namespace to your app package name (context.packageName) in your Application subclass

chimmelb avatar Oct 03 '23 13:10 chimmelb

I'm also trying to get background-http working again in an app and am getting: JS: CONSOLE ERROR: ERROR Error: java.lang.IllegalArgumentException: You have to set namespace to your app package name (context.packageName) in your Application subclass

jeffswitzer avatar Jan 16 '24 17:01 jeffswitzer

You need to call init before using the plugin

triniwiz avatar Jan 25 '24 22:01 triniwiz