问题标签 [qtandroidextras]

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 回答
3119 浏览

android - Qt android,新的qml窗口不能正常工作

我有这个主窗口:

第二个窗口是:

桌面版本还可以,但是在 android 中,当我运行应用程序时,它的行为很奇怪!当我单击 mainWindow 中的按钮时,会发生此错误:W/Qt ( 8903): (null):0 ((null)): QEGLPlatformContext::swapBuffers(): eglError: 12301, this: 0x6b46e7c0尽管似乎调用了第二种形式并且主窗口变为非活动状态。但第二个窗口是不可见的。虽然我看不到里面的 from 和按钮,但是当我触摸按钮预期所在的区域时,它显然可以工作并且第二个窗口消失,然后第一个窗口再次变为活动状态。当我尝试通过单击 android 后退按钮返回到主窗口时,它会返回到主窗口并出现此警告:W/Qt ( 8903): (null):0 ((null)): Can't find surface 2发生!

  • 你能告诉我如何强制 qt 显示第二个窗口吗?
  • 根据这篇文章,Qt 应用程序将只包含一个可以从 Android 应用程序启动的活动。这是否意味着没有办法拥有多个窗口?我的意思是只有一个活动的几个 qml 窗口。
  • 如果是这种情况。您能否告诉我是否有替代方案来开发至少从用户的角度来看似乎是多视图的应用程序?
  • 您对删除应用程序窗口的所有内容并将其替换为第二个窗口的内容有何看法?如果我们添加一些转换,它看起来就像 android 中的活动转换。但我担心性能问题。

谢谢你的帮助

0 投票
2 回答
2319 浏览

java - 使用字符串参数调用 AndroidJni 静态方法

我正在尝试使用带有字符串参数的 QAndroidJniObject 在 Qt C++ 类中调用 Java 静态函数。

这是我正在调用的具有函数的 Java 类

我从 C++ 调用这个函数为

我收到以下错误

错误:不能通过'...'活动,颜色传递非平凡可复制类型'class QString'的对象);

我怎样才能摆脱这个错误

0 投票
1 回答
310 浏览

android - Qt Android,如何访问 QRunnable 中的外部对象?

我有一个线程类在桌面上运行良好,但在 android 上崩溃。在我的 Qt 应用程序中,我需要一个具有如下共享对象的任务:

主要我希望能够按如下方式运行任务:

这在桌面上非常有效。但是在你可能知道的android中它不起作用。当我运行它Fatal signal 11 (SIGSEGV), code 1, fault addr 0x98 in tid 31727 (Thread (pooled))时,在使用 _p 之前只有第一个 Hello 打印
所以我的问题是:
如何在所有线程中使用 MyPointer(共享对象)。我不可能将它的副本传递给每个线程。它应该在所有线程中通过指针传递。换句话说,我如何在所有线程中使用共享对象。在不是 const 的方法中,每个线程都可以更改对象。
我知道有几种技术可以在 Qt 中处理多线程应用程序。哪一个适合在安卓设备上工作?
我是否需要使用 JNI 在 android 中进行安全的多线程处理?我想我会的!

0 投票
1 回答
865 浏览

qt - 如何在 Qthread 中使用 QAndroidJniEnvironment 指针?

在 qt 主线程中,我可以成功运行:

_env一个QAndroidJniEnvironment。但是如果我尝试_env在 a 的 run 函数中使用QRunnable,应用程序崩溃并出现此错误:

这是代码:

您能否告诉我如何在新的 Qthread 中使用指向QAndroidJniEnvironment或的指针?QAndroidJniObject因此应用程序 ui 在执行 java 进程期间保持响应。

0 投票
2 回答
3248 浏览

android - 使用 JNI 将长值传递给 Java

我试图通过JNI将对象指针从C++代码传递给java方法,以便稍后将其转换回回调中的指针。

Java 函数原型是public String process(Long clientAddr) ,这是 JVM 打印给我的美丽:Invalid indirect reference 0x5f3d9bc8 in decodeIndirectRef.

这段代码有什么问题?或者,也许还有另一种方法可以做我想做的事?

0 投票
2 回答
1931 浏览

android - Qt Quick 中 Android 上的常规共享按钮

在我的第一个目标平台是 Android 的基于 Qt Quick 的应用程序中,我需要使用户能够共享图像。我的意思是 Android 上的一般分享操作,它不限于任何特定的社交网络:

在此处输入图像描述

我确实从 Qt 中找到了一些关于在 FB 和 Twitter 上共享的线程,但它们直接使用 Facebook/Twitter API,这不是我想要的。

从我目前发现的情况来看,似乎没有跨平台的方法可以做到这一点,我的应用程序可能必须包含一些 Java 代码。如果这是正确的,那么目前在 Android 上编写特定于平台的代码的正确方法是什么?像这样

另一个想法是,可以通过在WebView中加载的网站中运行的 Javascript 调用共享操作。由于网络应用程序具有共享功能,这应该是可能的,并且可能更跨平台。这看起来合理吗?

0 投票
1 回答
245 浏览

android - Android-当应用程序在后台时启动一个对话框

我有一个具有呼叫对话框的应用程序。我正在尝试在锁定屏幕上显示通话对话框。当应用程序不在后台时它已经工作了,实际上当应用程序打开并且锁定屏幕处于活动状态时它没有工作。
这是我的代码:

0 投票
3 回答
773 浏览

android - Qt android屏幕锁定java问题

我有 Qt 应用程序,需要在应用程序运行时防止屏幕变暗。我在 main.cpp 的 main() 开头放置了以下代码:

这几乎来自:如何在 Qt for android 中保持屏幕开启?, 除了我使用callMethod<void>而不是callObjectMethod.

问题是,当应用程序启动时,它会因大量 Java 日志而崩溃,我怀疑这是其中的相关部分:

我向 AndroidManifest.xml 添加了适当的权限 (android.permission.WAKE_LOCK)。问题似乎是由于 addFlags() 在其主视图之外运行引起的?我用谷歌搜索了很多,找不到其他人有同样的问题。

谢谢,伊万

0 投票
1 回答
1060 浏览

qt - QMetaObject InvokeMethod 方法传递整数数组参数

我对Qt相当陌生,我正在尝试做一些 Android 开发。我正在使用 Qt 并使用QAndroidJNIEnvironment。在代码中,我使用QMetaObject::invokeMethod调用 QMainWindow 标头中的插槽来实现我的本机方法。问题是java文件中的native方法有一个参数是java整数数组(我相信QAndroindJniObject中的等效类型是jintArray)。我找不到相应的 c++/Qt 类型来放置在 Q_ARG(type, value) 宏中以解析参数。请帮助我理解我做错了什么,因为我认为 jintArray 的等效类型是 int [],但是当我使用它时我收到错误。在此先感谢您的帮助。

我收到的错误如下:

根据要求,java 函数签名如下:

0 投票
0 回答
265 浏览

android - 在 Qt5.5 for Android 上使用 Parse 推送:getCurrentInstallation 上的 NullPointerException

我正在尝试在 Android 上将 parse.com 推送服务与 Qt5.5 一起使用。尝试调用 ParseInstallation.getCurrentInstallation() 时出现以下错误:

这是我的代码:

我的 AndroidManifest.xml 在打开应用程序标记之前有以下内容(myapp 是一个占位符,真实的应用程序 ID 设置正确):

...以及关闭应用程序标记之前的以下内容:

到目前为止,我实际上一直在使用 v-play 插件,但它停止了工作,所以我尝试自己实现它,这意味着解析端配置正确,因为它曾经与 v-play 插件一起工作(直到它停止工作; ) - 但这是 v-play 方面的错误)

我究竟做错了什么?