First I compiled the c files and then compiled the java code. In java, there are no errors. The problem arrises only when I try to port it to android. I could easily compile the c files using the android 'ndk-build' tool. This successfully creates the shared library.
I am not able to import JNA in an Android Project because of something similar to this: Android - JNA library
However I don't understand the comments in that post. Is it possible to use JNA in Android?
I tried removing a few files from the jna.jar (the files corresponding to other architectures). Yet, I get the same error that says: The library 'jna.jar' contains native libraries that will not run on the device. Including: "com/sun/jna/android-arm/libjnidispatch.so"
The jar (the one with the java wrapper for the C library), gets imported and I can write code. But, I still get 'ExceptionInInitializerError' with the first object I create using the classes in this jar.
I am not well versed in java. I only have the knowledge of a rookie. Please bear with me and help out. Thanks.
Maybe this is what you looking for:
- Add Android SDK/NDK tools into PATH (used by native/Makefile).
- Set environment variable NDK_PLATFORM (used by native/Makefile).
- Build using: ant -Dos.prefix=android-arm dist.
- Tests must be run on the target platform, not the build platform.
- Add dist/jna.jar and/or dist/platform.jar to your application, as needed.
- If you're using android-maven-plugin, jna.jar can be used as-is (native libraries will be automatically copied into your project).
- If you're using Google's Eclipse plugin then you must manually remove libjnidispatch.so from jna.jar/lib/armeabi and add it into your project's libs/armeabi directory.
- See http://code.google.com/p/android/issues/detail?id=17861 and http://developer.android.com/guide/practices/jni.html for more information.
Copied from https://github.com/twall/jna/blob/master/www/AndroidDevelopmentEnvironment.md:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With