No implementation found for native android -


i searched lot not found why error comes in project. making simple hello world type project. first project. follow steps in

[http://code.google.com/p/awesomeguy/wiki/jnitutorial][1]

[1]:http://jnitutorial 

error:

            04-15 14:06:31.610: i/mainactivity(22766): oncreate             04-15 14:06:31.610: w/dalvikvm(22766): no implementation found native lcom/useofjniwithjava/mainactivity;.somefunction:(i)v             04-15 14:06:31.610: w/dalvikvm(22766): threadid=1: thread exiting uncaught exception (group=0x40ed8438)             04-15 14:06:31.610: e/androidruntime(22766): fatal exception: main             04-15 14:06:31.610: e/androidruntime(22766): java.lang.unsatisfiedlinkerror: native method not found: com.useofjniwithjava.mainactivity.somefunction:(i)v             04-15 14:06:31.610: e/androidruntime(22766):    @ com.useofjniwithjava.mainactivity.somefunction(native method)             04-15 14:06:31.610: e/androidruntime(22766):    @ com.useofjniwithjava.mainactivity.oncreate(mainactivity.java:26)             04-15 14:06:31.610: e/androidruntime(22766):    @ android.app.activity.performcreate(activity.java:5010)             04-15 14:06:31.610: e/androidruntime(22766):    @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1079)             04-15 14:06:31.610: e/androidruntime(22766):    @ android.app.activitythread.performlaunchactivity(activitythread.java:2041)             04-15 14:06:31.610: e/androidruntime(22766):    @ android.app.activitythread.handlelaunchactivity(activitythread.java:2102)             04-15 14:06:31.610: e/androidruntime(22766):    @ android.app.activitythread.access$600(activitythread.java:137)             04-15 14:06:31.610: e/androidruntime(22766):    @ android.app.activitythread$h.handlemessage(activitythread.java:1210)             04-15 14:06:31.610: e/androidruntime(22766):    @ android.os.handler.dispatchmessage(handler.java:99)             04-15 14:06:31.610: e/androidruntime(22766):    @ android.os.looper.loop(looper.java:137)             04-15 14:06:31.610: e/androidruntime(22766):    @ android.app.activitythread.main(activitythread.java:4838)             04-15 14:06:31.610: e/androidruntime(22766):    @ java.lang.reflect.method.invokenative(native method)             04-15 14:06:31.610: e/androidruntime(22766):    @ java.lang.reflect.method.invoke(method.java:511)             04-15 14:06:31.610: e/androidruntime(22766):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:841)             04-15 14:06:31.610: e/androidruntime(22766):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:608)             04-15 14:06:31.610: e/androidruntime(22766):    @ dalvik.system.nativestart.main(native method) 

example.c

            #include <jni.h>             #include <stdio.h>             #include <conio.h>             #include <com_useofjniwithjava_mainactivity.h>                  jniexport jint jnicall java_com_useofjniwithjava_mainactivity_somefunction__(jnienv * env, jobject  obj)                 {                     return (jint)3;                 }                  jniexport void jnicall java_com_useofjniwithjava_mainactivity_somefunction__i(jnienv * env, jobject  obj, jint x)                 {                     int xx = x;                     printf("%d\n",xx);                     return;                 }                 jniexport void jnicall java_com_useofjniwithjava_mainactivity_somefunction__ljava_lang_string_2(jnienv * env, jobject  obj, jstring x)                 {                     return;                 } 

header file created javah command

com_useofjniwithjava_mainactivity.h

        /* not edit file - machine generated */             #include <jni.h>             /* header class com_useofjniwithjava_mainactivity */              #ifndef _included_com_useofjniwithjava_mainactivity             #define _included_com_useofjniwithjava_mainactivity             #ifdef __cplusplus             extern "c" {             #endif             /*              * class:     com_useofjniwithjava_mainactivity              * method:    somefunction              * signature: ()i              */             jniexport jint jnicall java_com_useofjniwithjava_mainactivity_somefunction__               (jnienv *, jobject);              /*              * class:     com_useofjniwithjava_mainactivity              * method:    somefunction              * signature: (ljava/lang/string;)v              */             jniexport void jnicall java_com_useofjniwithjava_mainactivity_somefunction__ljava_lang_string_2               (jnienv *, jobject, jstring);              /*              * class:     com_useofjniwithjava_mainactivity              * method:    somefunction              * signature: (i)v              */             jniexport void jnicall java_com_useofjniwithjava_mainactivity_somefunction__i               (jnienv *, jobject, jint);              #ifdef __cplusplus             }             #endif             #endif 

android.mk file

            local_path:= $(call my-dir)              include $(clear_vars)              local_module    := example             local_cflags    := -werror             local_src_files := example.c             local_ldlibs    := -llog               include $(build_shared_library) 

mainactivitycode: here calling these native methods.

            public class mainactivity extends activity {                  static {                     system.loadlibrary("example");                 }                  public native int somefunction();                  public native void somefunction(string str);                 public native void somefunction(int x);                  private final string tag = "mainactivity";                  @override                 protected void oncreate(bundle savedinstancestate) {                     super.oncreate(savedinstancestate);     //setting content view                     setcontentview(r.layout.activity_main);                     log.i(tag, "oncreate");                         //calling native method argument int                     somefunction(2);                     log.i(tag, "void method called succesfully.");                         //calling native method                     int x = somefunction();                     log.i(tag, "x = " + x);                  }             } 


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -