Суммарный собственный метод в c - java.lang.UnsatisfiedLinkError: Собственный метод не найден

Я пытаюсь создать приложение NDK, но я получаю эту ошибку java.lang.UnsatisfiedLinkError: Собственный метод не найден: com.examplejni.MainActivity.sum:(II)I

Я хочу вызвать функцию суммы, написанную на c из моего приложения для Android

Я пропустил шаг, чтобы сделать?

Это файл 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);
    }
}

1 ответ

Решение

Вы не можете получить доступ к нативной функции напрямую. Вы должны создать функцию JNI для вызова в первую очередь.

Посмотреть этот урок

Другие вопросы по тегам