2014-01-23 85 views
0

我試圖做一個NDK應用程序,但我得到這個錯誤java.lang.UnsatisfiedLinkError:沒有找到本地方法:com.examplejni.MainActivity的.sum(II)我c-java.lang.UnsatisfiedLinkError中的總和本地方法:找不到本地方法

我想從我的Android應用程序

調用C編寫的求和函數我缺少一個步驟呢?

這是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

你錯過了一大步。我建議你先看看NDK教程。 – eozgonul

回答

0

您無法訪問本地功能直接。你必須先創建一個JNI函數來調用。

看到這個tutorial