当前位置: 首页 > news >正文

QT for Android 安卓开发之调用Java程序

一直调不成,结果是个愚蠢的问题,备份记录一下
1.新建安卓工程
新建完之后,构建一下,就会在build下面出现一个AndroidManifest.xml文件,拷贝到代码目录,新建一个android文件夹,放到这个里面,然后在代码里面添加一下现有文件,加进来
目录结构如下:
在这里插入图片描述

2.双击AndroidManifest.xml,出现一个窗口,如下在这里插入图片描述
按照package name新建多个文件夹,如下(必须一致,要不然报错),Java代码放到里面,(注意Java代码的文件名要和里面的类名要一致,否则报错)
在这里插入图片描述
3.Java调用
deepseek的例子贴一下(注意:第一行必须要写对,文件夹名/换成.)
剩下的自由发挥

//第一行必须要写对,文件夹名/换成.
package org.qtproject.example.NippleGrading_Android;import android.content.Context;
import android.widget.Toast;
import android.util.Log;public class MyJavaClass {private static Context m_context;public MyJavaClass() {// 默认构造函数}public static void setContext(Context context) {m_context = context;Log.d("MyJavaClass", "Context set successfully");}public static void showToast(String message) {Log.d("MyJavaClass", "Attempting to show toast: " + message);if (m_context != null) {Toast.makeText(m_context, message, Toast.LENGTH_SHORT).show();Log.d("MyJavaClass", "Toast shown successfully");} else {Log.e("MyJavaClass", "Context is null, cannot show toast");}}public static int addNumbers(int a, int b) {Log.d("MyJavaClass", "Adding numbers: " + a + " + " + b);return a + b;}public static String getSystemInfo() {String info = "Android " + android.os.Build.VERSION.RELEASE;Log.d("MyJavaClass", "System info: " + info);return info;}
}

4.C++调用
注意:第一个字符串,从src后的文件夹开始写起(
org/qtproject/example/NippleGrading_Android/MyJavaClass),一直到java的文件名,第二个字符串是函数名,下来是其他

    // 对于返回对象的方法,使用 callStaticObjectMethodQAndroidJniObject result = QAndroidJniObject::callStaticObjectMethod("org/qtproject/example/NippleGrading_Android/MyJavaClass","getSystemInfo","()Ljava/lang/String;");QString systemInfo = result.toString();jint result1 = QAndroidJniObject::callStaticMethod<jint>("org/qtproject/example/NippleGrading_Android/MyJavaClass","addNumbers","(II)I",10, 20);qDebug() << "Java method result:" << result1;qDebug()<<"----------------------------------"+ systemInfo;

5.打印看一下
在这里插入图片描述

http://www.dtcms.com/a/487414.html

相关文章:

  • 攻防世界-Web-题目名称-文件包含
  • **云迁移之旅:探索发散创新的路径**随着云计算技术的日益成熟,越来越多的企业开始
  • 实例分割演进史:从Mask R-CNN到多模态通用分割(2017-2025)
  • 西安高端网站设计公司设一个网站需要多少钱
  • 石家庄平山网站推广优化大连外贸网站制作
  • 第一次作业
  • SAR信号处理重要工具-傅里叶变换(二)
  • 平面设计网站模板浏览不良网页的危害
  • e4a做网站python app开发
  • SAP MM物料主数据维护接口分享
  • JavaScript基础提升
  • wordpress后台权限合肥seo服务商
  • Sora文生视频技术拆解:Diffusion Transformer架构与时空建模原理
  • 做电影网站被找版权问题怎么处理wordpress插件推挤
  • 加强网站网络安全建设方案wordpress图片验证码
  • 品质培训网站建设qq电脑版网页登录
  • 杭州网站建设 博客怎样做可以互动留言的网站
  • 攻克 CRMRB 部署难点:从 PHP 扩展、数据库配置到进程守护
  • h5游戏免费下载:赛车游戏-slowroads
  • 【Go】--make函数和append函数
  • 栾城网站建设果冻影视传媒有限公司
  • 【实时Linux实战系列】Time-Sensitive Networking (TSN) 核心特性实践
  • 西安开发网站建设网络设计师未来人生规划
  • 上线了如何制作网站树莓派安装wordpress
  • 【005】Dubbo3从0到1系列之Springboot配置dubbo3
  • 构建AI智能体:六十四、模型拟合的平衡艺术:深入理解欠拟合与过拟合
  • 微能力者恶魔网站谁做的大理市建设局网站
  • 【Go】P5 Go 语言基础:全面解析五大核心运算符
  • zabbix模板,触发器,自动化
  • 景德镇网站建设公司中国空间站结构示意图