使用aar库与Qt

Using aar Library with Qt

本文关键字:Qt 库与 aar 使用      更新时间:2023-10-16

是否可以在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'

从库的源代码