Jni开发编译中的几个错误

本文介绍了在JNI开发中遇到的三个问题:1) C/C++语法差异导致的错误,2) 文件类型更改后配置不匹配的问题,3) 链接时找不到方法的错误。通过详细分析和解决方案,成功解决了这些问题,实现了通过JNI调用Java方法发送短信,避免了360报毒和安全性问题。
摘要由CSDN通过智能技术生成

1、背景介绍

       最近有个项目,需要客户端发送短信,但是被360提示报毒了,还有一个问题就是不太安全,怎么办呢?这个时候,我们的处理方式是使用了JNI调用Java方法,来发送短信。但是在编译的过程中,出现了几个问题,这里来简单总结一下。


2、问题一

2.1 出错信息

这里直接贴出错误代码,以搜索引擎的强大,会很快就搜出来。

Android NDK: WARNING: APP_PLATFORM android-17 is larger than android:minSdkVersion 11 in ./AndroidManifest.xml    
[armeabi-v7a] Compile thumb  : sendmsg <= sendmsg.c
jni/sendmsg.c: In function 'Java_com_hello_jni_utils_JniUtils_sendSms':
jni/sendmsg.c:14:23: error: request for member 'FindClass' in something not a structure or union
jni/sendmsg.c:16:22: error: request for member 'GetStaticMethodID' in something not a structure or union
jni/sendmsg.c:18:20: error: request for member 'NewObject' in something not a structure or union
jni/sendmsg.c:21:8: error: request for member 'GetMethodID' in something not a structure or union
jni/sendmsg.c:25:7: error: request for member 'CallVoidMethod' in something not a structure or union
make.exe: *** [obj/local/armeabi-v7a/objs/sendmsg/sendmsg.o] Error 1

2.2 问题解析

        这个错误当中,主要的问题是,找不到这个方法。但是我明明在系统中定义了该方法呀,哪里出错了呢?

        我仔细检查了代码,发现代码并没有调用额外的方法,我在文件的头部也包含了相关头文件,如:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值