问题标签 [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.
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.代码
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?
编辑:
我也试过这样做:
但仍然得到:
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。也许这里有一些东西可以解释这种行为?
android - Qt Android Extras 调用类
假设我有一个 Java 类,
在 Qt 中,我如何获得该函数返回的内容?通知示例如下:
方法描述符应该是()Ljava/lang/String;
?之后的人字形应该是什么callStaticMethod
?
编辑。固定,我不知道如何。我没有人字形,描述符是正确的。
qt - 无法在 Android 设备上的部署中加载 qml 文件
我在部署时遇到了与加载 1-2 个 qml 文件有关的问题。我有一个在模拟器上运行良好的代码,但在 delpoyment 时没有加载几个 qml 文件。例如
这是我的模型,在 itemClick 上想要加载新的 qml
在委托中,我正在像这样加载这个 qml 文件
仅供参考,此 seetingsHelp.qml 存在于同一文件夹中
此代码在模拟器上完美运行,我在 .pro 文件中设置了所有部署设置,DEPLOYMENTFOLDERS
例如qtcAddDeployment
. 此外,我也有不同的 qml 页面,它们在部署上运行良好,所以我猜这意味着部署设置也很好。
关于错误,除了屏幕上的一个错误,日志上没有特定错误
知道可能是什么问题
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.1
和QtCreator 3.0.1
。
任何人都知道它可能是什么,或者有人知道如何进行工作的好Qt
指南Android
吗GNU/Linux
?
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 未来会出现问题。
c++ - QWebView for Android 目标在 Windows pc 上的 Qt5.3,错误:QT 中的未知模块:webkitwidgets
我正在从 Windows pc 为 android 编写代码。我有 Qt 5.3,并按照建议在我的 .pro 文件中添加了以下行以使用 QWebView:
但是,当我运行 qmake 时,我得到了这个错误:
android - 从 QT 应用程序(com.android.settings)打开 android 设置
我在 QT 中有一个 android 应用程序。我想从一个按钮调用android设置。
我在 Java 中使用了这段代码:
有没有办法使用 QT C++ 调用 android 设置?
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
错误。