问题标签 [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 回答
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 投票
2 回答
1905 浏览

java - 蓝牙与 Android 上的 Qt。通过抽象类上的jni调用java类

此处可能重复,但接受的答案很短,没有太大帮助。

我正在使用适用于 Android 的 Qt 5.2。我想使用 Qt 框架目前不直接支持的我的 android 设备蓝牙功能。因此我开始使用 JNI 来访问 Android Java 类和方法。

我可以通过这样做来创建 AudioTimestamp 类的对象:

第一行调用默认构造函数,所以这工作正常。这只是一个测试,看看我是否能够创建一个有效的对象。

当我从 developer.android.com 开始使用蓝牙实现时,我需要通过以下方式获取设备的蓝牙适配器:

所以我试着这样做:

我很快发现“getSystemService(Context.BLUETOOTH_SERVICE)”似乎是突然被调用的。它属于抽象类Context.java。如何在抽象类上使用 Qt JNI 调用来获取 bluetoothManager?

编辑:

我也试过这样做:

但仍然得到:

0 投票
1 回答
5068 浏览

java - 如何从 C++/Qt 调用 QtActivity 中的非静态 Java 方法

Eskil Abrahamsen Blomfeldt 在他的博客上发表了一篇文章,展示了如何在此处从 C++ 调用 QtActivity/(HangmanActivity) 静态 Java 方法。

他提到他只使用静态方法,因为这更容易(确实)并且在他的示例中不需要更多。引用:

在我的游戏中,Activity 是一个单例,所以我在构造函数中存储了对该对象的静态引用。(我的 C++ Data 类具有相同的逻辑。我这样做是为了方便使用静态方法在 Java 和 C++ 代码之间进行通信。对于更复杂的示例,还可以在每个 C++ 中存储引用和指针和 Java 对象,将其映射到其他语言中的等价物,但这在这个游戏中不是必需的。)

调用静态方法有效。调用非静态方法不起作用(从未输入函数)。如果我在 onCreate() 中调用非静态方法 connectBluetooth() 它可以工作。有没有办法可以调用并且在 onCreate() 中没有非静态方法?

编辑:

我想我会添加一些代码。我扩展了 QtActivity 类:

我尝试从这个 C++ 类中调用这些方法:

编辑: 我最不确定的程序部分是 AndroidManifest.xml。也许这里有一些东西可以解释这种行为?

0 投票
1 回答
1191 浏览

android - Qt Android Extras 调用类

假设我有一个 Java 类,

在 Qt 中,我如何获得该函数返回的内容?通知示例如下:

方法描述符应该是()Ljava/lang/String;?之后的人字形应该是什么callStaticMethod

编辑。固定,我不知道如何。我没有人字形,描述符是正确的。

0 投票
1 回答
865 浏览

qt - 无法在 Android 设备上的部署中加载 qml 文件

我在部署时遇到了与加载 1-2 个 qml 文件有关的问题。我有一个在模拟器上运行良好的代码,但在 delpoyment 时没有加载几个 qml 文件。例如

这是我的模型,在 itemClick 上想要加载新的 qml

在委托中,我正在像这样加载这个 qml 文件

仅供参考,此 seetingsHelp.qml 存在于同一文件夹中

此代码在模拟器上完美运行,我在 .pro 文件中设置了所有部署设置,DEPLOYMENTFOLDERS例如qtcAddDeployment. 此外,我也有不同的 qml 页面,它们在部署上运行良好,所以我猜这意味着部署设置也很好。

关于错误,除了屏幕上的一个错误,日志上没有特定错误

知道可能是什么问题

0 投票
2 回答
4787 浏览

android - 在 Android 应用程序上部署 Qt 时出错

我正在尝试运行我的第一个Qt Android应用程序,并按照本教程进行操作:

http://urfoex.blogspot.ro/2013/12/qt5-android-setting-up-qt-52-for-android.html

但是,在我运行它之后,我得到了这个错误:

我也尝试过使用armeabi,但我得到了:

我正在构建的应用程序是默认Qt Quick应用程序。我正在使用Qt 5.2.1QtCreator 3.0.1

任何人都知道它可能是什么,或者有人知道如何进行工作的好Qt指南AndroidGNU/Linux

0 投票
1 回答
2058 浏览

android - android 上的 QML - C++ 是否适用于业务逻辑?

对即将进行的项目使用 QT/QML 的可行性进行一些调查。客户最初希望它在 Windows 和 Mac 桌面上使用,随后可能会在 iOS 和 Android 上使用。他们想知道我们建造的东西会相对容易地移动。我不是桌面程序员,但我看到的是 QML 旨在与 C++ 一起使用。因此,构建一个在 Mac 和 Windows 上运行的应用程序应该相对容易,而且 iOS 将接受 C++,所以我看不到那里有很多障碍。但我对Android感到困惑。我看到人们谈论使用 QML 构建 Android 应用程序,但他们似乎仍在使用 java;我收集它在后台使用 NDK。

但是,如果您编写的应用程序的前端包含 QML,并且 QML 未涵盖的任何内容都包含 C++,那么它可以在 Android 上运行吗?或者你需要用java重写C++部分吗?该应用程序不是一个简单的应用程序,因此我们将不得不在 QML 之外提供一些逻辑,至少看起来确实如此。虽然我们可以通过使用 QT 来节省时间和美元,而不必在台式机和 iOS 上进行本地化,但我发现 Android 未来会出现问题。

0 投票
1 回答
1407 浏览

c++ - QWebView for Android 目标在 Windows pc 上的 Qt5.3,错误:QT 中的未知模块:webkitwidgets

我正在从 Windows pc 为 android 编写代码。我有 Qt 5.3,并按照建议在我的 .pro 文件中添加了以下行以使用 QWebView:

但是,当我运行 qmake 时,我得到了这个错误:

0 投票
3 回答
3561 浏览

android - 从 QT 应用程序(com.android.settings)打开 android 设置

我在 QT 中有一个 android 应用程序。我想从一个按钮调用android设置。

我在 Java 中使用了这段代码:

有没有办法使用 QT C++ 调用 android 设置?

0 投票
2 回答
2170 浏览

android - 错误:未定义对 '_jstring* QAndroidJniObject::callStaticMethod<_jstring*>(char const*, char const*)' 的引用

我正在尝试使用QAndroidJniObject. 作为测试,我只调用了 2 个 Java 函数,一个返回一个 int,另一个返回一个字符串。

当返回一个 int 时,这段代码编译得很好:

但是,如果我将其更改为调用返回字符串的函数,则会失败:

它失败了

错误:未定义对 '_jstring* QAndroidJniObject::callStaticMethod<_jstring*>(char const*, char const*)' 的引用

既然QAndroidJniObject::callStaticMethod是模板函数,那么如何为一种类型定义但为另一种类型未定义呢?

编辑:实际上,我只是用jobject, jbyteArray, jbooleanArray, jbyte,jboolean等进行了测试。这就是我发现的 - 只有整数类型,如jshort, jint, jlong,jboolean有效,而字符串、数组和对象都给出undefined reference错误。