【发布时间】:2016-12-31 03:06:28
【问题描述】:
Android ndk 是否支持 c++ 函数重载?如果有,该怎么做?
我想编写纯 c++ 代码,即我不喜欢使用 extern "C" 语法。
例如c++代码:
void Java_com_mathlib_Math_add(JNIEnv *env, jobject, jintArray a, jintArray b, jintArray c) {
...
}
void Java_com_mathlib_Math_add(JNIEnv *env, jobject, jfloatArray a, jfloatArray b, jfloatArray c) {
...
}
java代码:
public class Math {
public native void add(int[] a, int[] b, int[] c);
public native void add(float[] a, float[] b, float[] c);
}
我在 java 代码中使用本地实现,如下所示:
float[] a = {0};
float[] b = {1};
float[] c = new float[1];
new Math().add(a, b, c);
但是如果我在设备上运行上面的代码,我会收到错误:No implementation found for void com.mathlib.Math.add(float[], float[], float[]).
IDE 是 Android Studio。那么代码有什么问题呢?
【问题讨论】:
-
行得通,谢谢。
标签: android android-ndk java-native-interface