On Tuesday, 7 April 2020 at 12:29:57 UTC, Adam D. Ruppe wrote:
On Tuesday, 7 April 2020 at 11:45:24 UTC, burt wrote:
I managed to get it to compile. I had to add __bss_end__ symbol myself and set the value to the value of the `_end` symbol or it wouldn't work. A PR to the LDC druntime is wat caused the __bss_end__ symbol to be missing [0].

Blargh it was supposed to just work without main() on the new ldc but I only actually ran stuff with 1.19 on actual android.


However, when I added a MainActivity class in D using arsd.jni, the app crashes whenever one of the @Exported methods is called.

What does the android studio debugger say about it? Missing method or another link problem?

And a callback method for a button in Java called dFunction with the appropriate parameters. I noticed that the generated .so file didn't contain a `Java_com_mypackage_myapplication_MainActivity_dFunction` symbol. Any help on this would be appreciated.

Yeah, it uses a private name and registers that in a static module constructor (this allows it to support overloads more easily), so that specific name not being there isn't wrong, but it could be the registration function never got called again.

Error is as follows according to the logs:

java.lang.IllegalStateException: Could not execute method for android:onClick
        at [etc.]
Caused by: java.lang.reflect.InvocationTargetException
        at [etc.]
Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void com.mypackage.myapplication.MainActivity.dFunction(android.widget.TextView, android.widget.TextView, android.widget.TextView) (tried Java_com_mypackage_myapplication_MainActivity_dFunction and Java_com_mypackage_myapplication_MainActivity_dFunction__Landroid_widget_TextView_2Landroid_widget_TextView_2Landroid_widget_TextView_2)
        at [etc.]

So yes, it cannot find the function. How can I check if the module constructor is actually run?

Reply via email to