码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-08-25 16:42:58      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:qt   java   jni   

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

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


-----

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:qt   java   jni   

原文地址:http://blog.csdn.net/deadwolf/article/details/47977369

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!