title: Invoking native functions of ported library
body: <p>i have been following this guide on how to port the LAME library with and Android NDK.
  <a href="http://blog.libertadtech.com/2011/02/porting-lame-encoder-to-android-arm.html" rel="nofollow">http://blog.libertadtech.com/2011/02/porting-lame-encoder-to-android-arm.html</a></p>
  
  <p>Every worked fine an i got the libmp3lame.so file.</p>
  
  <p>Now for a first test i wanted to call the simple function:</p>
  
  <pre><code> void get_lame_version(char *strbuf, size_t buflen, const char *prefix);
  </code></pre>
  
  <p>I have written a wrapper for the LAME library:</p>
  
  <pre><code>package de.goddchen.android.youtubeconverter;
  
  public class LameWrapper {
  
  public static native void get_1lame_1version(char[] buf, int len,
          char[] prefix);
  }
  </code></pre>
  
  <p>And i call it this way: </p>
  
  <pre><code>public class MainActivity extends Activity {
  
  static {
      System.loadLibrary("mp3lame");
  }
  
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          char[] buffer = new char[100];
          LameWrapper.get_1lame_1version(buffer, 100, "".toCharArray());
          ((TextView) findViewById(R.id.text)).setText(buffer.toString());
      }
  
  }
  </code></pre>
  
  <p>But i get the following error:</p>
  
  <pre><code>05-05 10:36:11.973: DEBUG/dalvikvm(199): Trying to load lib /data/data/de.goddchen.android.youtubeconverter/lib/libmp3lame.so 0x43757f78
  05-05 10:36:12.053: DEBUG/dalvikvm(199): Added shared lib /data/data/de.goddchen.android.youtubeconverter/lib/libmp3lame.so 0x43757f78
  05-05 10:36:12.123: DEBUG/dalvikvm(199): No JNI_OnLoad found in /data/data/de.goddchen.android.youtubeconverter/lib/libmp3lame.so 0x43757f78
  05-05 10:36:12.573: DEBUG/dalvikvm(199): +++ not scanning '/system/lib/libwebcore.so' for 'get_1lame_1version' (wrong CL)
  05-05 10:36:12.693: DEBUG/dalvikvm(199): +++ not scanning '/system/lib/libexif.so' for 'get_1lame_1version' (wrong CL)
  05-05 10:36:12.693: DEBUG/dalvikvm(199): +++ not scanning '/system/lib/libFFTEm.so' for 'get_1lame_1version' (wrong CL)
  05-05 10:36:12.703: DEBUG/dalvikvm(199): +++ not scanning '/system/lib/libmedia_jni.so' for 'get_1lame_1version' (wrong CL)
  05-05 10:36:12.703: DEBUG/dalvikvm(199): +++ not scanning '/system/lib/libsrec_jni.so' for 'get_1lame_1version' (wrong CL)
  05-05 10:36:12.703: WARN/dalvikvm(199): No implementation found for native Lde/goddchen/android/youtubeconverter/LameWrapper;.get_1lame_1version ([CI[C)V
  05-05 10:36:12.703: DEBUG/AndroidRuntime(199): Shutting down VM
  05-05 10:36:12.753: INFO/ActivityManager(52): Start proc com.android.alarmclock for broadcast com.android.alarmclock/.AlarmInitReceiver: pid=213 uid=10017 gids={}
  05-05 10:36:12.773: WARN/dalvikvm(199): threadid=3: thread exiting with uncaught exception (group=0x4001aa28)
  05-05 10:36:12.783: ERROR/AndroidRuntime(199): Uncaught handler: thread main exiting due to uncaught exception
  05-05 10:36:12.883: ERROR/AndroidRuntime(199): java.lang.UnsatisfiedLinkError: get_1lame_1version
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at de.goddchen.android.youtubeconverter.LameWrapper.get_1lame_1version(Native Method)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at de.goddchen.android.youtubeconverter.MainActivity.onCreate(MainActivity.java:19)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at android.app.ActivityThread.access$2100(ActivityThread.java:116)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at android.os.Handler.dispatchMessage(Handler.java:99)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at android.os.Looper.loop(Looper.java:123)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at android.app.ActivityThread.main(ActivityThread.java:4203)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at java.lang.reflect.Method.invokeNative(Native Method)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at java.lang.reflect.Method.invoke(Method.java:521)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
  05-05 10:36:12.883: ERROR/AndroidRuntime(199):     at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>Can someone please point me to the right way to call the functions of libmp3lame.so?</p>