标题c++与java混合编程

1.先用安卓编译器编译一次,在android-build目录下找到AndroidManifest.xml。
2.在项目路径下创建 android/src/ 目录
3.将AndroidManifest.xml拷贝到 android/src下
4.在android/src下创建com 目录,并手动写一个QtAndroidTest.java 文件到com 目录
5.将上面两个文件添加的QT工程中,并在pro文件中添加ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
6.将AndroidManifest.xml用普通文本编辑器打开,将 activity 下面的
android:name=“com.QtAndroidTest.QtAndroidTest” 修改成这样

工程项目截图:

调用:以调用安卓Toast 为例
此时:
QtAndroidTest.java文件内容为:

package com.QtAndroidTest;
import android.content.Intent;
import android.widget.Toast;
import android.os.Handler;
import android.os.Message;
import org.qtproject.qt5.android.bindings.QtActivity;public class QtAndroidTest extends org.qtproject.qt5.android.bindings.QtActivity
{private static QtAndroidTest m_instance;private static Handler m_handler = new Handler() {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case 1:Toast toast = Toast.makeText(m_instance,(String)msg.obj, Toast.LENGTH_SHORT);toast.show();break;};}};public QtAndroidTest(){m_instance = this;}public static void makeToast(String s){m_handler.sendMessage(m_handler.obtainMessage(1, s));}
}

在QT中调用:

在头文件中包含
#ifdef Q_OS_ANDROID
#include<QAndroidJniObject>
#include<QAndroidJniEnvironment>
#endif
// 在cpp 文件中调用QAndroidJniObject javaToast = QAndroidJniObject::fromString("QT调用Android原生Toast");QAndroidJniObject::callStaticMethod<void>("com/QtAndroidTest/QtAndroidTest","makeToast","(Ljava/lang/String;)V",javaToast.object<jstring>());

Qt on Android 调用安卓原生方法相关推荐

  1. html5调用原生android,h5调用IOS/安卓原生方法,原生调h5方法

    之前也总结过h5调用原生的方法,但是写的不全.像调完原生之后,原生往往会有返回值,或者根据返回值的不同回调h5的方法. 1.判断机型 getType() { var u = navigator.use ...

  2. React Native实现js调用安卓原生代码

    1 问题 实现js调用安卓原始代码,直接上代码,简单粗暴 2 代码实现 1) 实现一个继承ReactContextBaseJavaModule的类,MyToastModule.java文件如下 pub ...

  3. h5调用安卓原生相机、相册、电话、录像,且兼容安卓系统8.0

    前言 安卓原生组件webview加载h5的URL,若要h5调用安卓原生相机和相册有效需要做以下操作. 测试机:魅蓝note2  系统5.1.1 华为荣耀畅玩7x  系统8.0.0 一.h5页面相关 方 ...

  4. Android调用JNI本地方法跟踪目标代码

    正如Android调用JNI本地方法经过有点改变章所说跟踪代码是可行的,但是跟踪某些代码会出现anr,点击取消,还是不好运,有提高办法吗?回答是有(gdb还没试过,本文只讨论ida). 下面是我使用  ...

  5. Qt for Android 调用android原生接口分享图片或文字

    在用Qt开发android应用的时候,有一个需求是通过调用android原生接口去实现图片分享功能,原理很简单,首先在java文件中用android接口封装一个分享功能的方法,然后在C++中调用QAn ...

  6. Qt for Android调用原生接口打开相机拍照并存储照片

    Qt开发Android应用,需求是通过调用Android原生接口去打开系统相机拍照,并返回拍摄的照片.原理很简单,现在Java文件中写android代码调用相机,拍照后将将相片存储在SD卡,然后在C+ ...

  7. Qt for Android调用android原生控件安装apk

    Qt开发Android应用,做软件升级的时候,需要调用android借口安装程序, 首先在java文件中用android接口封装一个分享功能的方法,然后在C++中调用 QAndroidJniObjec ...

  8. Qt for Android调用android原生Toast控件

    用Qt开发Android应用,有时候会想着直接调用android原生的一些组件或者打开某些android的系统界面,比如调用Toast显示消息提醒.打开android系统设置页面.这里主要讲解如何通过 ...

  9. webview调用ios或者安卓的方法(内嵌h5页面调用app原生方法)

    1.配合使用调用app原生的方法(h5页面不需要回调和数据) 实例1 //通知客户端,token失效 callTokenLostToApp(){let boswer=vm.config.getBrow ...

最新文章

  1. JS 中settimeout和setinterval函数的区别
  2. 请妥善保管自己的QQ等网络帐号
  3. 北大95后「AI萝莉」回来了,一次中8篇顶会论文的她,现在达摩院开源7大NLP模型...
  4. 存储过程和SQL语句比较【转】
  5. sql怎么修改服务器角色,sql角色服务器的设置
  6. 转]最长递增子序列问题的求解
  7. js的if(!myFunction())有何用
  8. 孙玄:人工智能时代,你需要掌握的经典大规模文本相似识别架构和算法
  9. 小白功能测试项目实战篇01-dtsshop开源商城项目之【会员管理】模块测试点分析
  10. live share_带Live Share的Visual Studio Code中的实时编码入门
  11. powerbi导入地图_PowerBI地图可视化的那些套路
  12. 解决windows10下总是很快自动黑屏进入睡眠问题
  13. c# dataset 和DataGridView的绑定详细
  14. 计算机无法备份,win7不能备份系统如何解决?win7不能备份系统的解决方法
  15. 更改公众号名称对用户关注的影响
  16. 37互娱,2019秋招提前批,Java服务端一面
  17. unity制作法线贴图
  18. 集线器、交换机、网桥和路由器如何隔离广播域和冲突域
  19. 五天面试五家硅谷顶尖公司并拿到五个Offer
  20. 小程序 报错之 thirdScriptError ..... is not a function 的解决方法

热门文章

  1. python3 pycharm 抓取app 上的数据
  2. 用python和sympy库解决方程组问题_使用 Python 解数学方程
  3. Python学习随笔
  4. 309.Best Time to Buy and Sell Stock with Cooldown
  5. 全美 计算机专业排名,全美计算机专业排名
  6. 2.HTML元素、属性、标题
  7. 使用梯度上升法求解 PCA 问题
  8. php - 解决百万级全站用户消息推送问题
  9. 如何剪辑QQ酷狗下载的音乐?
  10. 群晖NAS配置DNSPodDDNS实现外网访问(仅适用于阿里云域名)