Note that there are some explanatory texts on larger screens.

plurals
  1. PONo JNI_OnLoad found skipping init > Application shutdown
    primarykey
    data
    text
    <p>Folks,</p> <p>I am working on an android application where I need a third party .so library. I built this third party library (with ndk-build) as per their instructions and was then looking to include this .so in to my Android project.</p> <p>Therefore I followed the steps described in docs/PREBUILTS.html and successfully build the new .so in the jni/prebuilt directory. Now I tried leveraging the .so facilities by using it in a simple test android app. So what i do is :</p> <pre><code>static { Log.i("load so &gt; ","load so"); System.loadLibrary("xyz"); } /* The native functions */ private static native int openFile(String filename); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try{ String path = getPathForDownloadDirectoryFile(); Log.i("file path&gt; ", path); int num= openFile(path); }catch(Exception e){ Log.e("&gt;", "could not open the file"); } } </code></pre> <p>Now when I run my app I get a debug message saying : No JNI_OnLoad found in /data/data/com.example.myfirstapp/lib/xyz.so 0x411e6738, skipping init and then the application shuts down. </p> <p>For More Info, Here is the error log :</p> <pre><code>No JNI_OnLoad found in /data/data/com.example.mysecondapp/lib/xyz.so 0x411e67a0, skipping init W/dalvikvm( 570): No implementation found for native Lcom/example/mysecondapp/MainActivity;.openFile:(Ljava/lang/String;)I D/AndroidRuntime( 570): Shutting down VM W/dalvikvm( 570): threadid=1: thread exiting with uncaught exception (group=0x40a13300) E/AndroidRuntime( 570): FATAL EXCEPTION: main E/AndroidRuntime( 570): java.lang.UnsatisfiedLinkError: Native method not found: com.example.mysecondapp.MainActivity.openFile:(Ljava/lang/String;)I E/AndroidRuntime( 570): at com.example.mysecondapp.MainActivity.openFile(Native Method) E/AndroidRuntime( 570): at com.example.mysecondapp.MainActivity.onCreate(MainActivity.java:31) E/AndroidRuntime( 570): at android.app.Activity.performCreate(Activity.java:5008) E/AndroidRuntime( 570): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) E/AndroidRuntime( 570): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) E/AndroidRuntime( 570): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) E/AndroidRuntime( 570): at android.app.ActivityThread.access$600(ActivityThread.java:130) E/AndroidRuntime( 570): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) E/AndroidRuntime( 570): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime( 570): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime( 570): at android.app.ActivityThread.main(ActivityThread.java:4745) E/AndroidRuntime( 570): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime( 570): at java.lang.reflect.Method.invoke(Method.java:511) E/AndroidRuntime( 570): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) E/AndroidRuntime( 570): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) E/AndroidRuntime( 570): at dalvik.system.NativeStart.main(Native Method) W/ActivityManager( 146): Force finishing activity com.example.mysecondapp/.MainActivity </code></pre> <p>As I could see that native implementation for the openFile() method was not found but the same xyz.so lib worked pretty neat with the original sample app from the third party. I am pretty much a starter with Android-ndk world. </p> <p>Java-Android-NDK Ninjas ..any guess on what I might be missing ? I'll highly appreciate any help here :)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload