【问题标题】:Sum native method in c - java.lang.UnsatisfiedLinkError: Native method not found总结 c 中的本机方法 - java.lang.UnsatisfiedLinkError:未找到本机方法
【发布时间】:2014-01-23 15:47:11
【问题描述】:

我正在尝试制作一个 NDK 应用程序,但我收到此错误 java.lang.UnsatisfiedLinkError: Native method not found: com.examplejni.MainActivity.sum:(II)I

我想从我的 android 应用程序中调用一个用 c 编写的 sum 函数

我错过了一个步骤?

这是c文件(sum.c)

int sum(int n1,int n2)
{
    return n1+n2;
}

这是Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := sum
LOCAL_SRC_FILES := sum.c
include $(BUILD_SHARED_LIBRARY)

这是我的活动

package com.examplejni;

import com.examplejni.R;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity
{

    static
    {
        System.loadLibrary("sum");
    }

    public static native int sum(int n1, int n2);

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        int value1 = 20;
        int value2 = 30;

        int nativeOut;

        nativeOut = sum(value1, value2);

        TextView tv = (TextView) findViewById(R.id.text);
        tv.setText(nativeOut);
    }
}

【问题讨论】:

  • 你错过了一大步。我建议你先看看 NDK 教程。

标签: android c android-ndk java-native-interface android.mk


【解决方案1】:

您不能直接访问本机函数。您必须先创建一个 JNI 函数才能调用。

看到这个tutorial

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多