android的重载函数,Android中的C++函数重载ndk

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

这有效,谢谢。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值