Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android c-java.lang.UnsatifiedLinkError中的本机方法总和:未找到本机方法_Android_C_Android Ndk_Java Native Interface_Android.mk - Fatal编程技术网

Android c-java.lang.UnsatifiedLinkError中的本机方法总和:未找到本机方法

Android c-java.lang.UnsatifiedLinkError中的本机方法总和:未找到本机方法,android,c,android-ndk,java-native-interface,android.mk,Android,C,Android Ndk,Java Native Interface,Android.mk,我正在尝试创建一个NDK应用程序,但我得到以下错误java.lang.UnsatisfiedLinkError:Native method not found:com.examplejni.MainActivity.sum:(II)I 我想从我的android应用程序中调用一个用c编写的求和函数 我错过了要做的一步? 这是c文件(sum.c) 这是Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE

我正在尝试创建一个NDK应用程序,但我得到以下错误java.lang.UnsatisfiedLinkError:Native method not found:com.examplejni.MainActivity.sum:(II)I

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

我错过了要做的一步?

这是c文件(sum.c)

这是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);
    }
}

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


看到这个了吗

你错过了一大步。我建议你先看看NDK教程。
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);
    }
}