未找到android native方法

时间:2013-12-02 23:03:30

标签: android android-ndk

我得到没有找到本机Lcom / vb / HAR / VBHARActivity的实现; .nativeMain :()在Windows 7上出现V错误。我编译并运行了sanangeles和hello-jni示例,在模拟器和设备上没有问题。这是规格 窗口7,ndk-9rb,adt 22(自带的eclipse),java 1.7,mingw,没有cygwin,ndk-build和android项目构建没有错误。 android项目的最小sdk为10,目标为19. libvbhar.so在libs目录中为29k,但在obj目录中大得多。验证共享库已复制到模拟器。

项目的路径是 SRC \ COM \ VB \ HAR \ VBHARActivity.java

public class VBHARActivity extends Activity {
    static {System.loadLibrary("vbhar");}
    public static native void nativeMain();
    private Button btn; 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vbhar);
        this.btn = (Button)this.findViewById(R.id.button1);
        Log.i("", "vb_har before button");      
        this.btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i("", "vb_har calling native c code");
                nativeMain();
            }
          });

    }
}

c code

#include <jni.h>
#include "HARCVB.h"
void Java_com_vb_vbHarC_VBHARActivity_nativeMain(JNIEnv*  env)
{
    maincall();
}

android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS := -DANDROID_NDK --std=c99
LOCAL_MODULE    := vbhar
LOCAL_SRC_FILES := HARCVB.cpp \
 vbMain.c \
 vbHarApp.c \
 vbHarUtil.c \
 vbSensorData.c \
 vbSupport.c \
include $(BUILD_SHARED_LIBRARY)

谢谢你的帮助 亚历

1 个答案:

答案 0 :(得分:2)

它正在寻找Java_com_vb_HAR_VBHARActivity_nativeMain,但您提供Java_com_vb_vbHarC_VBHARActivity_nativeMain。重命名您的方法以匹配。

您还应该确保使用extern "C"声明它。