Use it on Android Studio APPAnswered

Hi, i would like to use it on an android studio app in java, is that possible ?

This ones are using JFrame. Could you please provide me an Android Studio APP example? JFrame is desktop GUI toolkit.

Answer

The Java examples can be used with any frontend framework.

Hi,

I am trying to integrate turboactive(Using TurboActivate with Java) into my android studio. But when I load Turboactive library (libTurboActivate.so from aarch64) with this command System.loadLibrary("TurboActivate"), I am getting following error :

System.loadLibrary("TurboActivate");
FATAL EXCEPTION: main (Ask Gemini)
                                                                                                   Process: com.objdetector, PID: 10090
                                                                                                   java.lang.UnsatisfiedLinkError: dlopen failed: library "librt.so.1" not found: needed by /data/app/~~Bfue776vDxTD5oHiIrstDg==/com.objdetector-JSBIVEqUZpaPdIv9zGDrnQ==/base.apk!/lib/arm64-v8a/libTurboActivate.so in namespace classloader-namespace
                                                                                                       at java.lang.Runtime.loadLibrary0(Runtime.java:1087)
                                                                                                       at java.lang.Runtime.loadLibrary0(Runtime.java:1008)
                                                                                                       at java.lang.System.loadLibrary(System.java:1664)
                                                                                                       at com.objdetector.mediaprojection.test.onCreate(test.java:88)
                                                                                                       at android.app.Activity.performCreate(Activity.java:8198)
                                                                                                       at android.app.Activity.performCreate(Activity.java:8182)
                                                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
                                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3765)
                                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3968)
                                                                                                       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
                                                                                                       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
                                                                                                       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
                                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
                                                                                                       at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                       at android.os.Looper.loop(Looper.java:246)
                                                                                                       at android.app.ActivityThread.main(ActivityThread.java:8506)
                                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                                       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
                                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1139)

I investigated it and I saw this comments in internet:

This error occurs when your Android app tries to load a native library (libTurboActivate.so) that depends on librt.so.1, but Android cannot find librt.so.1 in the system.

librt.so.1 is a Linux system library (part of glibc) used for real-time operations, but it is not available on Android.

Run file libTurboActivate.so

If output says ELF 64-bit LSB shared object, ARM aarch64 → Built for generic Linux.

If it mentions Android or BuildID[sha1] → Likely Android-compatible.

And I am getting exactly the first response:

$ file libTurboActivate.so
libTurboActivate.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, stripped

I also tried all other folders armv7-a, armv8-a, x64 and x86. Non of them worked.

Following requirements:
JavaVersion.VERSION_1_8
jna:5.14.0@aar'
Turboactive:Version 4.4.4.0
Device:Samsung M31

I would appreciate for a response.

Thanks a lot in advance

Emre 
 

Additional Note:  I tried also with jna:5.17.0@aar'. It did not work

Answer

We don't support android. Only Windows, macOS, FreeBSD, and Linux currently. Android is too locked down to be profitable.

Thank you very much for your response. However, I’ve seen multiple comments and sources indicating that Android is supported – including in the comment you mentioned. Based on that, I invested significant effort integrating Turboactive into my macOS and Windows apps, and I’ve also been paying for the licenses for nearly a year now.

Given this, I wanted to ask:
Would it be possible to consider a patch or workaround to enable Android support?

If Android support is ultimately not feasible, I would unfortunately have to remove the integration from my app, which would mean throwing away a lot of hard work and starting over with a different provider – something I’d really prefer to avoid, especially since I’ve been very happy with your API and support so far.

Would you be open to giving it a try or exploring a possible solution?

Thanks again and kind regards,

Yeah, we're not opposed to it. We just haven't had enough demand for it to be a feasible option.

What variants of Android are you targeting? Presumably it's outside the Google play ecosystem?

I am targeting smartphones; however, my app cannot be approved for deployment on the Google Play Store because it is a parental control application that requires the use of certain restricted features.

I did some research and came across a suggestion from DeepSeek, which outlines a few steps that could potentially make your library work on Android. Would it be possible for you to try out these steps and let me know if it works?

If it does, I could continue using my paid account with WyDay. Perhaps the effort required is not as big as initially assumed by you.

I would really appreciate your help with this.

thanks a lot in advance.


Solutions to Make It Work on Android
Option 1: Recompile for Android (Best Fix)
Get the source code of TurboActivate.
Cross-compile with Android NDK:
bash

Copy

Download
ndk-build APP_ABI=arm64-v8a
Ensures correct linking against Android’s bionic libc.
Option 2: Patch the Library (Temporary Fix)
If the library only has minor dependency issues (e.g., librt.so.1):
bash

Copy

Download
# Remove problematic dependencies (Linux-only)
patchelf --remove-needed librt.so.1 libTurboActivate.so
Then place it in app/src/main/jniLibs/arm64-v8a/.
Option 3: Use a Prebuilt Android Version
Contact the library vendor (e.g., WyDay for TurboActivate) for an Android-compatible build.
4. Testing the Patched Library
Add to your project:


Copy

Download
app/src/main/jniLibs/arm64-v8a/libTurboActivate.so
Load it in Java/Kotlin:
java

Copy

Download
static {
    System.loadLibrary("TurboActivate"); // Loads libTurboActivate.so
}
Run on a real arm64-v8a device (not an x86 emulator).
5. Common Errors & Fixes
ErrorCauseSolution
dlopen failed: library "librt.so.1" not found
Linux dependency
Recompile or use patchelf
java.lang.UnsatisfiedLinkError: No implementation found
JNI mismatch
Verify JNI function names
Fatal signal 11 (SIGSEGV)
Incompatible ABI
Rebuild for Android
6. Final Advice
Best: Recompile for Android (arm64-v8a) using NDK.
Fallback: Patch with patchelf (may crash later).
Avoid: Using raw Linux aarch64 binaries directly.


Generative AI is useless. We use real programmers.

Please tell us exactly which systems you're targeting and we'll see if it's feasible and worth our time to devote Human Resources to the problem.

I am planning to support all android smart phones. At the moment, I am using Galaxy M31 SM-M315F/DSN android 11 which is an old device, which does not support Android 15 anymore. But next week, I will buy a new samsung galaxy a15 5g for my development, which will be supporting new Android 15. Is these infos enough for you? do you need anything else? thank you very much for your supports :) 

Hi, what have you decided? are you going to give a try?

All major phones (including Samsung) disable side-loading by default. Until anti-trust action is taken against the phone manufacturers it's not worth our time to support just jailbroken phones (and minuscule userbase who don't typically spend money on software).