最近公司移动开发的同学走了,临时起意看了下。
安卓开发的java不会,ios的oc也没真正耍过,以前C++还比较熟,看最近qt连出了两个版本5.4,5.5,好像还不错,就看了下。
qt支持跨平台,就不多说了,本来就看这个特点来玩玩。
先玩Qt for andriod ,一些原生的东西还是依赖安卓自己,那需要java,所以先玩了下 c++调用 java
遇到问题,返回值老是不对。具体问题下面说了。
1.使用JNI技术,使用已封装的QAndroidJniObject很方便,没用传统的JNI ,毕竟已经封装过的简单很多。
但是也带来个问题,调用失败,没有异常抛出,也没有找到特别的能拿到相应错误信息的方法。原始JNI好像通过 Env可以拿异常信息。有知道的看客知会一声。
2.调用静态方法有 callStaticMethod 和 callStaticObjectMethod,前一个返回值是标准类型,可用模版参数
第二个用于返回值是对象。 返回标准类型的很容易成功,基本没有机会出错。
3.调用实例方法有 callMethod 和 callObjectMethod,区别类似
4.返回值参数见帮助文档。
容易出问题的点,
对象定义最后的分号(callStaticMethod 和callMethod 不需要)
[ 用于数组对象,不是数组不要加
【就因为这个没注意浪费了一天时间】
Object Types
Type Signature
jobject L<fully-qualified-name>;
jclass
jstring
jobjectArray [L<fully-qualified-name>;
jarray [<type>
jbooleanArray [Z
jbyteArray [B
jcharArray [C
jshortArray [S
jintArray [I
jlongArray [J
jfloatArray [F
jdoubleArray [D
Primitive Types
Type Signature
jboolean Z
jbyte B
jchar C
jshort S
jint I
jlong J
jfloat F
jdouble D
Other
Type Signature
void V
-----
只说问题和要点,简约了点,,主要是给自己记录下。看客见谅
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/deadwolf/article/details/47977369