问题标签 [qandroidjniobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1291 浏览

java - 无法通过 QAndroidJniObject 创建 java 类

尝试从 c++ 端创建一个 java 类,但不断崩溃

appBucksAdv.java

简单JNI.hpp

简单JNI.cpp

错误消息:# W/dalvikvm(21397): dvmFindClassByName 拒绝 'org/qtproject/qt5/android/QtMessageDialogHelper'

# D/dalvikvm(21397): 试图加载 lib /data/data/org.qtproject.example.androidTest/lib/libQt5QuickParticles.so 0x4176efd0

# D/dalvikvm(21397): Shared lib '/data/data/org.qtproject.example.androidTest/lib/libQt5QuickParticles.so' 已经加载到同一个 CL 0x4176efd0

# D/dalvikvm(21397): 试图加载 lib /data/data/org.qtproject.example.androidTest/lib/libandroidTest.so 0x4176efd0

# D/dalvikvm(21397): 添加共享库 /data/data/org.qtproject.example.androidTest/lib/libandroidTest.so 0x4176efd0

# D/dalvikvm(21397): No JNI_OnLoad found in /data/data/org.qtproject.example.androidTest/lib/libandroidTest.so 0x4176efd0,跳过初始化

# W/Qt (21397): kernel/qcoreapplication.cpp:416 (QCoreApplicationPrivate::QCoreApplicationPrivate(int&, char**, uint)): WARNING: QApplication 不是在 main() 线程中创建的。

# W/dalvikvm(21397): dvmFindClassByName 拒绝 'org/qtproject/qt5/android/QtNativeInputConnection'

# W/dalvikvm(21397): dvmFindClassByName 拒绝 'org/qtproject/qt5/android/QtExtractedText'

1.完整的消息

2.代码

0 投票
0 回答
4266 浏览

java - 如何使用 Qt Jni 类“QAndroidJniObject”

我是“Qt for Android”的初学者,现在我正在使用它来开发基于移动的通信软件。我开发了java函数,将android的api作为.java文档中的一个类来调用。为了简化UI开发,UI是基于Qt Widget程序。然后我使用Qt-JNI类“QAndroidJniObject”根据Qt5.2 API文档调用这些java函数。Android资源文件存放在目录:./android/src/ com/comm/sipcall/SipCallSend.java。由于这方面的资料比较少,所以我根据API文档开发了java和c++程序。但是遇到了以下问题,也希望得到答案: 1)Qt程序是基于Qt Widget。java程序需要获取当前应用程序对象Context才能初始化java对象。我开发的c++代码如下:

这是正确的吗?

2)java类包含一个构造函数和三个公共函数:

“new QAndroidJniObject”返回非空,但是下面的函数没有执行,为什么?

3) 我曾尝试将 c++ 中的 Context 作为构造函数的参数,但我发现代码没有运行,为什么?

4)根据Qt5.2 API文档,QAndroidJniObject提供了一个名为“callObjectMethod”的方法:

但是当我如下使用它时,IDE提示我参数不正确,为什么?

谢谢...

0 投票
1 回答
6287 浏览

android - 如何使用 QAndroidJniObject 从 Qt 内部调用 Java 代码?

从使用 Qt Creator 创建的空 Qt for Android 项目开始,我如何执行本机 Java 代码?

例如,如果我有这个 java 方法:

我有这个应该调用该方法的 QtHelloJava.sayHello()方法:

我应该将 Java 代码放在我的项目中的什么位置,以及该call_HelloJava_sayHello()方法中的内容是什么?

0 投票
1 回答
836 浏览

java - How to use QAndroidJniObject to call a Intent from Java

Now, i would like to call this drivers from my App, but i use QT. I found the classes QAndroidJNIObject to call java code. I found also at github.com/demantz/RFAnalyzer/blob/master/app/src/main/java/com/mantz_it/rfanalyzer/MainActivity.java an example in java.

But i cannot find a way to write the right code in C++/Qt to make the equal call like the example in Java. I am not sure if this java code is correct or missing something.

Can someone help me ?

Also i want to ask if i can have a tcp connection with anet.h libs from Qt code?

0 投票
1 回答
1086 浏览

qt - callStaticObjectMethod 的用途是什么?

qt 文档在 QAndroidJniObject 对象中很差。callStaticObjectMethod你能告诉我和之间有什么区别,callStaticMethod我应该什么时候使用它们?如果您有任何工作示例,如果在您的答案中解决它们,将不胜感激。(如 Q 通知器)谢谢

0 投票
1 回答
1138 浏览

android - 无法使用 Qt for Android 使手机播放声音或振动

我正在使用 QtCreator 部署一个 Android 应用程序。

我想播放声音并让手机振动以通知用户发生了不好的事情。我使用 QAndroidJniObject 来调用 SDK 函数。

我不能让任何人工作。

对于“振动”:

vibrator.callMethod已到达(感谢Michael 的帮助),但手机没有振动(请注意,我的应用程序有android.permission.VIBRATE

对于“播放声音”,我尝试了两种方法:

在这两种情况下,都没有到达最后一个函数,因为对象无效(玩家和戒指都无效)。

0 投票
0 回答
45 浏览

android - 无法使用 QAndroidJniObject 创建 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 对象

这是我的代码,试图创建一个QAndroidJniObject来访问WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON值。

所以我这样做:

知道为什么keepAliveField=0会在我期望的时候打印keepAliveField=128吗?

0 投票
1 回答
491 浏览

android - 无法使用 QAndroidJniObject 调用 PowerManager.WakeLock.newWakeLock

我正在尝试执行此 Java 代码:

使用 Qt QAndroidJniObject(我正在 Android 上部署 Qt 应用程序)。

我这样做了:

从调试器检查:levelAndFlags是正确的 (6),tag是正确的(“我的标签”),但wakeLock.isValid()返回 false。

这行肯定有问题:

但我想不通是什么...

0 投票
1 回答
934 浏览

java - Qt 和 Android Gallery - 使用 QAndroidJniObject 的 MediaStore

我正在编写一个需要从 Android Gallery 获取图像路径的代码。该代码是QAndroidJniObject用来编写等效java代码的Qt

我的问题是我没有弄清楚如何让Android MediaStore columns返回图像路径。我尝试了几种方法都没有成功:

我怎样才能做到这一点?我的完整代码如下。

0 投票
1 回答
1912 浏览

android - Android 强制 OpenCV 3.0 作为 32 位库加载

我正在尝试让我的 64 位 Android 设备编译本地 32 位 jniLibs,到目前为止一切正常,但我遇到了障碍。

几天来,我一直在研究到底出了什么问题,到处乱逛,但这是我得到的当前错误:

java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/org.opencv.engine-1/lib/arm64/libopencv_java3.so" 是 64 位而不是 32 位

考虑到 64 位设备认识到它应该编译 32 位架构,这实际上是有希望的,这是我通过省略 arm64、x86_64 和 mips64 实现的,根据这个答案: Android JNI: 32-bit compatability with 64-位设备?

我使用的初始化代码是:

所以我的问题如下:

  1. 是否有某种方法可以编辑 OpenCV 3.0 中包含的 Abi,以识别我只希望在设备识别它应该只搜索 32 位框架之后加载 32 位框架?

  2. 恢复到 OpenCV 2.4.11 后功能丢失会更糟吗(我知道本机相机在新框架上无法正常工作)

  3. 如果 Abi 的答案是正确的,它将对应于应用程序级别、项目级别或其他(可能是 opencvlib)级别的​​ gradle 构建吗?那部分在我的脑海中浮现,阅读了另一个答案。