metaeducation / rebol-server

Packs Android-native-Rebol with a WASM-Rebol Web Console into an .APK
GNU Lesser General Public License v3.0
7 stars 4 forks source link

r3 does not get launched #8

Closed MarkoSchuetz closed 3 years ago

MarkoSchuetz commented 3 years ago

Whenever I launch rebol-server I get an error message:

Cannot run program "/data/user/0/giuliolunati.rebolserver/files/system/r3" (in directory "/data/user/0/giuliolunati.rebolserver/files"): error=20, Not a directory
giuliolunati commented 3 years ago

Sorry, I'm working on that

Il dom 27 dic 2020, 18:56 Marko Schütz-Schmuck notifications@github.com ha scritto:

Whenever I launch rebol-server I get an error message:

Cannot run program "/data/user/0/giuliolunati.rebolserver/files/system/r3" (in directory "/data/user/0/giuliolunati.rebolserver/files"): error=20, Not a directory

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/metaeducation/rebol-server/issues/8, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLC4M453XDJE3M4FJNHDCDSW5YLJANCNFSM4VLBPUOA .

giuliolunati commented 3 years ago

Changed prebuilt binary source, should work now. NOTE: please remove completely the app before reinstall

MarkoSchuetz commented 3 years ago

I uninstalled the APK on the phone and did a fresh git clone & build. Now I get Attempt to invoke virtual method 'int java.lang.String.indexOf(java.lang.String)' on a null object reference

hostilefork commented 3 years ago

@MarkoSchuetz You may not have used --recurse-submodules when cloning and so wound up with an empty rebol-httpd directory, so there was no server put in the package. I updated the bash script to raise errors in such cases.

Anyway, I'm trying to add building and testing of the rebol-server.apk to the GitHub CI build for Android, so I made a rebol-server.apk.

I've done this only once before, and when I did, I did it in Termux on an Android phone as in @giuliolunati's conference video. However, since that's not pleasant to try and use a debug bridge in an emulator to automate, I did a build on the host. Here is the resulting APK:

http://hostilefork.com/media/shared/android/rebol-server.apk

It works for me on my Moto G6, as well as in an API Level 30 Emulator that comes in a relatively recent Android Studio. However, it gives a dialog box complaining that it was built for an older version of Android and to ask for a new version.

hostilefork commented 3 years ago

I'm pretty sure this was the result of not having --recurse-submodules in the enlistment, hence an empty rebol-httpd directory.

The GitHub Action for building the server just goes ahead and overwrites the committed directories with the latest versions of rebol-httpd and replpad-js.

If the latest binary of the interpreter is being pulled from s3, then what probably makes sense is to check to see if you have a rebol-httpd and replpad-js enlistment and just use it if you do, otherwise get the latest. This is how the interpreter is handled.

Will make that a separate issue and close this one.