gluonhq / attach

GNU General Public License v3.0
49 stars 26 forks source link

Android application fails to launch with attach 4.0.15 #321

Closed marinier closed 2 years ago

marinier commented 2 years ago

We have an Android application that we're building with graalvm-svm-java17-linux-gluon-22.1.0.1-Final JavaFX 18.0.2, charm glisten 6.1.1, and glisten afterburner 2.1.0.

The app works fine with attach+gluonfx maven plugin 4.0.14, but it fails to make it to the gluon splash screen on 4.0.15. We've tested it on a Pixel 4a running Android 13 and a Samsung Galaxy S20 running Android 11.

Under 4.0.14, this sequence happens the first time the application is launched:

On subsequent runs, it goes straight to the main screen + splash screen.

Under 4.0.15, this sequence happens the first time the application is launched:

In the console output, this appears when it crashes:

[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] --------- beginning of crash
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773): FATAL EXCEPTION: main
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773): Process: com.soartech.isaacuserui, PID: 5773
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.app.Activity.getSystemService(java.lang.String)' on a null object reference
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773):     at com.gluonhq.helloandroid.Util$1$1.run(Util.java:90)
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773):     at android.os.Handler.handleCallback(Handler.java:883)
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773):     at android.os.Handler.dispatchMessage(Handler.java:100)
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773):     at android.os.Looper.loop(Looper.java:237)
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773):     at android.app.ActivityThread.main(ActivityThread.java:8034)
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773):     at java.lang.reflect.Method.invoke(Native Method)
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] E/AndroidRuntime( 5773):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] W/ActivityManager( 1191): crash : com.soartech.isaacuserui,0
[Thu Aug 18 17:43:37 EDT 2022][INFO] [SUB] W/ActivityManager( 1191): setHasOverlayUi called on unknown pid: 5773

Very rarely, the application actually makes it to asking for the location permission (but then the app window disappears), and at least twice today it actually made it to the main screen + splash screen. It appeared to work correctly if it made it that far.

I saw in https://github.com/gluonhq/attach/commit/39d89f7141f97df8ea1d3fd12bf579b6de7b3718 that attach is now targeting platform 30. Our app is only targeting 29, so I updated our manifest to point to 30, but it made no difference.

Unfortunately I can't share the code or the complete logs, but our manifest is below if that helps. I can potentially pull out specific parts of the logs if that would be helpful -- just tell me what to look for.

I should also say, the even with 4.0.15, the app works fine on Windows.

Here's our AndroidManifest.xml:

<?xml version='1.0'?>
<manifest xmlns:android='http://schemas.android.com/apk/res/android' package='com.soartech.isaacuserui' android:versionCode='1' android:versionName='1.0'>
    <uses-sdk android:minSdkVersion="29"
              android:targetSdkVersion="29" />
    <supports-screens android:xlargeScreens="true"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <application android:label='ISAAC' android:icon="@mipmap/ic_launcher"
                 android:theme="@style/IsaacTheme"
                 android:requestLegacyExternalStorage="true"
    >
        <activity android:name='com.gluonhq.helloandroid.MainActivity'
                  android:configChanges="orientation|keyboardHidden"
                  android:screenOrientation="landscape"
                  android:fitsSystemWindows="true"
        >
             <intent-filter>
                <category android:name='android.intent.category.LAUNCHER'/>
                <action android:name='android.intent.action.MAIN'/>
             </intent-filter>
        </activity>
        <activity android:name='com.gluonhq.helloandroid.PermissionRequestActivity'/>
    </application>
</manifest>
marinier commented 2 years ago

We modified our application to disable the bluetooth parts, including removing the BLUETOOTH, BLUETOOTH_ADMIN, and ACCESS_FINE_LOCATION permissions from the manifest above, but this did not fix the issue. The same crash error occurs above.

jperedadnr commented 2 years ago

From the stacktrace, Util:90 has this line:

ClipboardManager clipboard = (ClipboardManager) Util.activity.getSystemService(Context.CLIPBOARD_SERVICE);

which indeed was added recently, after 4.0.14.

Could you enable Attach debugging, run again and post the related logs right before the crash? Just add to your main:

System.setProperty(Constants.ATTACH_DEBUG, "true");
marinier commented 2 years ago

Sure, here's the complete output:

[Wed. Sep. 07 12:33:47 EDT 2022][INFO] ==================== RUN TASK ====================

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] --------- beginning of main

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): onCreate start, using Android Logging v1

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): onCreate done

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): onStart

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): onStart done

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): onResume

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): onResume done

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): surfaceCreated for com.gluonhq.helloandroid.MainActivity@b7ff0b8

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): loading substrate library

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): AndroidVM called JNI_OnLoad, vm = 0xb4000073f3029190, androidEnv = 0xb4000073e302cb30

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): loaded substrate library

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): nativeSetSurface called, env at 0xb4000073e302cb30 and size 8, surface at 0x7fc455762c

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): native setSurface Ready, native window at 0xb4000074a3052f10

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): metrics = DisplayMetrics{density=2.625, width=2204, height=1017, scaledDensity=2.625, xdpi=415.636, ydpi=412.75}, density = 2.625

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): SurfaceReady, surface at 0x7fc455762c

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): SurfaceReady, native window at 0xb4000074a3052f10

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): Surface created, native code informed about it, nativeWindow at -5476376645931290864

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): We will now launch Graal in a separate thread

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): graalStarted true

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): surfaceCreated done

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): [MainActivity] surfaceChanged, format = 4, width = 2204, height = 1017

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): nativeSetSurface called, env at 0xb4000073e302cb30 and size 8, surface at 0x7fc455763c

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): native setSurface Ready, native window at 0xb4000074a3052f10

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): surfaceChanged done, metrics = DisplayMetrics{density=2.625, width=2204, height=1017, scaledDensity=2.625, xdpi=415.636, ydpi=412.75}, density = 2.625

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): SurfaceRedraw needed: ask native graal layer to redraw surface

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): Start GraalApp, DALVIK env at 0xb4000073e3029c70

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): PAGESIZE = 4096

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): EnvVersion = 65542

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): launcher, nativeSurfaceRedrawNeeded called. Invoke method on glass_monocle

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): surfaceredraw needed part 1 done

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): calling JavaMainWrapper_run with argsize: 23

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Sep. 07, 2022 12:33:47 P.M. com.sun.javafx.application.PlatformImpl startup

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @71c7db30'

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Prism pipeline init order: es2 

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Using Double Precision Marlin Rasterizer

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Using dirty region optimizations

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Using system sized mask for primitives

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Not forcing power of 2 sizes for textures

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Using hardware CLAMP_TO_ZERO mode

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Opting in for HiDPI pixel scaling

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Prism pipeline name = com.sun.prism.es2.ES2Pipeline

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Loading ES2 native library ... prism_es2_monocle

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): WARNING: java.lang.UnsatisfiedLinkError

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): System.loadLibrary(prism_es2_monocle) succeeded

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609):    succeeded.

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): GLFactory using com.sun.prism.es2.MonocleGLFactory

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): WARNING: java.lang.UnsatisfiedLinkError

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): In JNI_OnLoad_glass)monocle

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): System.loadLibrary(glass_monocle) succeeded

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): (X) Got class = class com.sun.prism.es2.ES2Pipeline

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): JavaFX: using com.sun.javafx.tk.quantum.QuantumToolkit

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): traceEvent: Set MouseState[x=419,y=193,wheel=0,buttonsPressed=IntSet[]]

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Maximum supported texture size: 16384

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Maximum texture size clamped to 4096

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Non power of two texture support = true

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Maximum number of vertex attributes = 32

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Maximum number of uniform vertex components = 1024

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Maximum number of uniform fragment components = 1024

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Maximum number of varying components = 124

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Maximum number of texture units usable in a vertex shader = 16

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Maximum number of texture units usable in a fragment shader = 16

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Graphics Vendor: Qualcomm

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609):        Renderer: Adreno (TM) 620

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609):         Version: OpenGL ES 3.2 V@0490.0 (GIT@4783c89, I46ff5fc46f, 1606807783) (Date:11/30/20)

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609):  vsync: true vpipe: true

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): launcher, nativeSurfaceRedrawNeeded called. Invoke method on glass_monocle

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): surfaceredraw needed (and wait) done

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Sep. 07, 2022 12:33:47 P.M. com.gluonhq.attach.util.impl.ClipboardUtils <init>

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): INFO: Init Util::ClipboardUtils

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): Initializing native Util from OnLoad

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): Init Util

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): ATTACH_DALVIK, tid = 13640, existed? 0, dalvikEnv at 0xb4000073e30677b0

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): Util :: Load className com/gluonhq/helloandroid/Util

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): ATTACH_DALVIK, tid = 13640, existed? 1, dalvikEnv at 0xb4000073e30677b0

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GluonAttach(13609): Util <init>

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): DETACH_DALVIK, tid = 13640, existed = 1, env at 0xb4000073e30677b0

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): Dalvik Util init was called

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): Enabling debug for all Attach services

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): ATTACH_DALVIK, tid = 13640, existed? 1, dalvikEnv at 0xb4000073e30677b0

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): DETACH_DALVIK, tid = 13640, existed = 1, env at 0xb4000073e30677b0

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] I/GluonAttach(13609): JNI_OnLoad_storage called

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): [Storage Service] Initializing native Storage from OnLoad

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): ATTACH_DALVIK, tid = 13640, existed? 1, dalvikEnv at 0xb4000073e30677b0

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): Util :: Load className com/gluonhq/helloandroid/DalvikStorageService

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): ATTACH_DALVIK, tid = 13640, existed? 1, dalvikEnv at 0xb4000073e30677b0

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): DETACH_DALVIK, tid = 13640, existed = 1, env at 0xb4000073e30677b0

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): Sep. 07, 2022 12:33:47 P.M. com.gluonhq.attach.storage.impl.AndroidStorageService <init>

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalCompiled(13609): INFO: AndroidStorageService <init>

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): ATTACH_DALVIK, tid = 13640, existed? 1, dalvikEnv at 0xb4000073e30677b0

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): Retrieving external storage for = Download

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GluonAttach(13609): Util::verifyPermissions for permissions: [android.permission.READ_EXTERNAL_STORAGE, android.permission.WRITE_EXTERNAL_STORAGE]

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GluonAttach(13609): Util <init>

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): Calling Verify Permissions from Attach::Util

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): PermissionRequestActivity::Calling verifyPermissions

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): Permission android.permission.READ_EXTERNAL_STORAGE is not granted

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): PermissionRequestActivity::start intent to requestPermission

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): onPause

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/GraalGluon(13609): Dispatching lifecycle event from native Dalvik layer: pause

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): Call Attach method from native Lifecycle: pause

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): ATTACH_DALVIK, tid = 13609, existed? 1, dalvikEnv at 0xb4000073e302cb30

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GraalGluon(13609): DETACH_DALVIK, tid = 13609, existed = 1, env at 0xb4000073e302cb30

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] D/GluonAttach(13609): called Attach method from native Lifecycle done

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): PermissionRequestActivity::onStart

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): Permission android.permission.READ_EXTERNAL_STORAGE is not granted

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] V/GraalActivity(13609): PermissionRequestActivity::requesting permissions

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] --------- beginning of crash

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609): FATAL EXCEPTION: main

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609): Process: com.soartech.isaacuserui, PID: 13609

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.app.Activity.getSystemService(java.lang.String)' on a null object reference

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609):   at com.gluonhq.helloandroid.Util$1$1.run(Util.java:90)

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609):   at android.os.Handler.handleCallback(Handler.java:942)

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609):   at android.os.Handler.dispatchMessage(Handler.java:99)

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609):   at android.os.Looper.loopOnce(Looper.java:201)

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609):   at android.os.Looper.loop(Looper.java:288)

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609):   at android.app.ActivityThread.main(ActivityThread.java:7898)

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609):   at java.lang.reflect.Method.invoke(Native Method)

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609):   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)

[Wed. Sep. 07 12:33:48 EDT 2022][INFO] [SUB] E/AndroidRuntime(13609):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
jperedadnr commented 2 years ago

I see... in your case you are asking for permissions, which calls:

Util util = new Util(null);
        return util.nativeVerifyPermissions(permissions);

so that nullifies the activity, and you get the NPE.

Probably this is what needs to be changed:

private static void syncClipboardFromOS() {
-        if (activity == null) {
+        if (Util.activity == null) {
            return;
        }
jperedadnr commented 2 years ago

@marinier 4.0.16-SNAPSHOT contains a fix for this issue.

Can you test it? Add this to your pom:

<repositories>
        <repository>
            <id>Snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        </repository>
    </repositories>

Thanks!

marinier commented 2 years ago

It works! Thanks!

jperedadnr commented 2 years ago

Cool, thanks for testing!