最近OpenGL ESを使用したAndroid向けゲームアプリを作成しているのですが、速度の面などからNDKを使ってみたいと思い、あれこれ調べつつ見様見真似でコードを書いてみました。
が、やはりC/C++を使ったことがない私にとってはいろいろと厳しいものがありまして、現在.hファイルと.cppファイルを分けようとしているのですが、エラーが出て前に進みません。
どこに問題があるのかをどなたかご教授していただけませんでしょうか?
開発環境はEclipse 4.2 Juno + CDTで、こちら↓を参考にして環境を整えました。
ttp://d.hatena.ne.jp/orangesignal/20120817/1345169256
以下ソースコードとエラーです。
■MainActivity.java
package com.example.testN;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
static {
System.loadLibrary("test");
}
public native void testFunc(); //ネイティブの関数
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testFunc();
}
}
#include <jni.h>
#include "TestC.h"
extern "C" {
JNIEXPORT void JNICALL Java_com_example_testN_MainActivity_testFunc(JNIEnv* env);
};
JNIEXPORT void JNICALL Java_com_example_testN_MainActivity_testFunc(JNIEnv* env)
{
bool b = A(); //A()の呼び出し。 ここでエラー undefined reference to `A()' が出ます
}