Skip to content

Building android-kawa in Termux? #3

Open
@panicz

Description

@panicz

hi,

I have filed a smiliar issue in the KawaDroid project.

For a while, I have been working on a Scheme editor for Android. Recently, I managed to hook it to the Kawa evaluator, and I think the result is quite promising:

https://youtube.com/shorts/oOHg74HYau4?feature=share

The editor itself is implemented in Java, because I've been using the all-mighty Termux environment on my phone to build it.

I did so, because I've found the 'buildAPKs' project, which provides build scripts that allow to build APK files on Android devices.

Recently it occurred to me, that if I were using Kawa, I'd be able to work on the editor in itself, which I think would be beneficial in many ways.

However, I know fairly little about Kawa, Java and the Android ecosystem.

When I try to build the KawaHello project using the .jar file from the KawaDroid repo, i.e.

$ java -jar ../KawaDroid/app/libs/kawa.jar -C KawaHello/src/kawa/android/hello.scm

I get the following error:

        at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1155)                                                                        at java.base/jdk.internal.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:42)                                     at java.base/jdk.internal.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:185)                                                      at java.base/java.lang.reflect.Field.acquireFieldAccessor(Field.java:1132)                                                                            at java.base/java.lang.reflect.Field.getFieldAccessor(Field.java:1113)                                                                                at java.base/java.lang.reflect.Field.get(Field.java:425)
        at gnu.expr.ModuleInfo.setupModuleExp(ModuleInfo.java:196)                 at kawa.standard.require.importDefinitions(require.java:301)               at kawa.standard.require.scanForDefinitions(require.java:197)              at kawa.lang.Syntax.scanForm(Syntax.java:57)                               at kawa.lang.Translator.scanForm(Translator.java:1508)                     at gnu.kawa.lispexpr.LispLanguage.parse(LispLanguage.java:82)              at gnu.expr.Compilation.process(Compilation.java:1935)                     at gnu.expr.ModuleInfo.loadByStages(ModuleInfo.java:290)
        at gnu.expr.ModuleInfo.loadByStages(ModuleInfo.java:272)
        at gnu.expr.ModuleInfo.loadByStages(ModuleInfo.java:272)                   at gnu.expr.ModuleInfo.loadByStages(ModuleInfo.java:272)                   at gnu.expr.ModuleInfo.loadByStages(ModuleInfo.java:272)                   at gnu.expr.ModuleInfo.loadByStages(ModuleInfo.java:272)
        at gnu.expr.ModuleInfo.loadByStages(ModuleInfo.java:272)                   at kawa.repl.compileFiles(repl.java:824)                                   at kawa.repl.processArgs(repl.java:444)
        at kawa.repl.main(repl.java:871)                                   Caused by: java.lang.ClassNotFoundException: android.view.View                     at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)                                                            at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)                                                         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)         ... 25 more

I haven't followed your build instructions, and will try to figure out how to translate them to Termux, but do you think that building your project in Termux should in principle be possible?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions