QT 学习遇到的问题记录1—QT C++ 调用 Java

最近公司移动开发的同学走了,临时起意看了下。

安卓开发的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


-----

只说问题和要点,简约了点,,主要是给自己记录下。看客见谅

发布了13 篇原创文章 · 获赞 0 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览