Android ndk支持C++函数重载吗?如果是这样,该怎么做?
我想写纯C++代码,即我不喜欢使用extern "C"语法。Android中的C++函数重载ndk
例如,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);
但如果我在设备上运行上面的代码,出现错误:找不到void com.mathlib.Math.ad的实现d(float [],float [],float [])。
IDE是Android Studio。那么代码有什么问题?
+0
可能相关:https://developer.android.com/training/articles/perf-jni.html#faq_ULE –
+0
也许:http://stackoverflow.com/questions/4031281/what-is-the-correct-写作本地方法签名的方式 - 在 - android-ndk –
+0
这有效,谢谢。 –