-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Building the sample for Android on Linux #80
Comments
NOTE: Targeting Android 15 does not work at the moment because JNA hasn't yet added support for 16 KB page size on Android. See java-native-access/jna#1618 Using the Android 14 SDK is fine though. |
I walked through the process and everything worked fine on my Debian 12 machine (Kernel 6.9.8-amd64). Only issue I have is that no object from beyondnet can be found in the |
@eiabea Yup, forgot to document this but you need to increase the max file size of Android Studio/IntelliJ: https://stackoverflow.com/a/23058324/1025706 Btw I think I increased it to something like 500MB and everything's fine. That's on an M2 Ultra though so your mileage may vary. 😉 |
@eiabea FYI: Ultimately (once the code generator reaches a certain level) I would like to add automatic build support just like what we have for Swift already. So that instead of including the generated Kotlin code file and the native binary, it would be just a single pre-compiled library that includes both parts. Once we have that, there'll be no more need for the IntelliJ file size tweak. |
Thanks, I already was that desperate to set this value, but now the IDE seems stuck 😅 |
@eiabea Really?! The file isn't that huge so maybe try something like 50MB? |
@eiabea I just checked. On my MacBook Air M2 I set it to |
I know you want to see my good old Thinkpad in flames @lemonmojo, but it seems like there is some kind of other issue 🤔 |
@eiabea After updating to .NET 9 RC1 and recompiling the generator, don't forget to update your symlink to beyondnetgen. |
Install .NET 9 RC SDK.
https://dotnet.microsoft.com/en-us/download/dotnet/9.0
Ensure
dotnet --version
works.Install Android NDK.
https://developer.android.com/ndk/downloads
Set environment variable
ANDROID_NDK_HOME
to the path of the NDK installation.ie.
nano ~/.bashrc
, add lineexport ANDROID_NDK_HOME="$HOME/dev/android-ndk-r27"
.Clone beyondnet.
ie.
git clone https://github.com/royalapplications/beyondnet.git
.cd to
beyondnet/Generator/Beyond.NET.CodeGenerator.CLI
.Run
./publish_linux_arm64
or./publish_linux_x64
depending on the host platform.Add a symlink to
beyondnetgen
so that it's on thePATH
.ie.
sudo ln -s ~/dev/beyondnet/Generator/Beyond.NET.CodeGenerator.CLI/bin/Release/net9.0/linux-arm64/publish/beyondnetgen /usr/local/bin/beyondnetgen
.Check if invoking
beyondnetgen
works and shows usage info.cd to
beyondnet/Samples/Beyond.NET.Sample.Managed
.Run
./publish_managed
.cd to
beyondnet/Samples
.Run
beyondnetgen Beyond.NET.Sample_Config.json
.cd to
beyondnet/Samples/Beyond.NET.Sample.Native
.Run
./publish_android_arm64
.NOTE: It appears that the Android NDK is currently unavailable for ARM64-based Linux machines and at least for me, the compilation fails within Parallels with the following error
EXEC : rosetta error : failed to open elf at /lib64/ld-linux-x86-64.so.2 [/home/fx/dev/beyondnet/Samples/Beyond.NET.Sample.Native/Beyond.NET.Sample.Native.csproj]
.Open
beyondnet/Samples/Beyond.NET.Sample.Android
in Android Studio and try to build/run OR to build from the command line, cd tobeyondnet/Samples/Beyond.NET.Sample.Android
and run./build.sh
.The text was updated successfully, but these errors were encountered: