使用aar库与Qt
Using aar Library with Qt
是否可以在Qt应用程序中使用Android Studio库(aar文件)?
问题是,我想用Qt实现一个移动应用程序,但只有Android Studio的库。是否有可能在Qt项目中包含库或我为它编写包装器类?
如果我必须实现一个包装器,我是否必须使用JNI,是否有任何使用它与c++和Java库的例子?
我找到了答案,这对我很有用。
首先,您必须解压缩aar文件,以便您可以获得jar库文件。然后你可以按照这个链接中的说明将库包含到你的apk中:http://doc.qt.io/qt-5/android3rdpartylibs.html
当您完成这些之后,您必须实现您自己的Java包装器类来与库交互。因此,你必须使用Qt中的QAndroidJniObject类。http://doc.qt.io/qt-5/qandroidjniobject.html
你也可以看看这个例子,他们使用自己的java类。http://doc.qt.io/qt-5/qtandroidextras-notification-example.html
您可以直接将.aar文件添加到您的项目
在gradle文件中添加.aar文件夹
compile project(':myAarFolder1.1')
并包含在gradle.settings
中include ':myAarFolder1.1'
aar文件在我的项目中的位置是这样的
android/myAarFolder1.1/.aar
android/myAarFolder1.1/build.gradle
android/myAarFolder1.1/构建。Gradle文件内容
configurations.maybeCreate("default")
artifacts.add("default", file('myAarFolder1.1.aar'))
好了,如果有人看到这个,我就明白了。
如果你还没有android源文件夹,请在你的。pro文件中插入一个。
android {
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android-sources
}
下面是一个示例文件结构:
project/android-sources
project/android-sources/settings.gradle
project/android-sources/build.gradle
project/android-sources/LibraryFolder
project/android-sources/LibraryFolder/Library.aar
project/android-sources/LibraryFolder/build.gradle
你可能需要得到你的构建。gradle文件从../build- android/android-build/build。gradle并复制到project/android-sources/,如果它还不存在的话。
将此插入到构建中。中的gradle文件{}
api project(':LibraryFolder')
将此插入您的设置。Gradle文件底部
include ':LibraryFolder'
创建构建。并插入:
configurations.maybeCreate("default")
artifacts.add("default", file('Library.aar'))
最后,如果你要添加的库有其他第三方依赖,你必须将它们添加到project/android-sources/build.gradle例如,我正在添加ImagePicker,并且必须在依赖项{}中插入以下行,但在api项目(':LibraryFolder')
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.github.bumptech.glide:glide:4.9.0'
从库的源代码
- 无法将 GLFW 库与 Ubuntu 18.04 上的头文件链接
- 无法在Ubuntu上将共享库与Eclipse链接
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- 使用静态库与 std::jthread (g++-10) 的分段错误
- Qt QGraphicsProxyWidget 与 QGraphicsScene 的交互
- 不能将C++的"std::filesystem"库与介子构建一起使用
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 将预编译的 C 共享库与 JNI/NDK 结合使用
- 当将QT创建者与CMAKE一起使用时,为什么我不必手动链接MSVC库
- Qt项目与自定义共享库交叉编译Qt
- DCMTK 库与 mac 中的 qt
- OPENCV:在VS2015 X64构建中,使用cvfontqt的QT库与cvfontqt和cvaddtext上使用QT
- 如果外部"C"包含与Qt库发生冲突怎么办?
- 将opencv2.4.6与Qt库链接
- 如何在Qt Creator中将Argon2库与cmake链接
- 链接OpenCV库与Qt creator在ubuntu上
- 我想使用LEMUR库与QT
- 使用aar库与Qt
- 使用log4cxx与Qt库
- 我是否必须将Qt库与我的软件包一起部署