使用带Qt的aar库

时间:2015-10-15 11:43:38

标签: java android c++ qt aar

是否可以在Qt应用程序中使用Android Studio Library(aar文件)?

问题是,我想用Qt实现移动应用程序,但只有Android Studio库。是否可以在Qt项目中包含库或让我为它编写包装类?

如果我必须实现一个包装器,我是否必须使用JNI,是否有任何与C ++和Java lib一起使用它的例子?

3 个答案:

答案 0 :(得分:3)

我找到了答案,对我有用。

首先你必须解压缩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

答案 1 :(得分:0)

您可以将.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 / build.gradle文件内容

configurations.maybeCreate("default")
artifacts.add("default", file('myAarFolder1.1.aar'))

答案 2 :(得分:0)

好吧,如果有人发现了这个问题,我想通了。

如果您还没有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

您可能需要从 ../ build-Android / android-build / build.gradle 获取build.gradle文件,并将其复制到 project / android-sources / (如果尚不存在)。

依赖项{}

中将其插入到build.gradle文件中
api project(':LibraryFolder')

将此内容插入底部的settings.gradle文件中

include ':LibraryFolder'

在LibraryFolder中创建build.gradle文件并插入:

configurations.maybeCreate("default")
artifacts.add("default", file('Library.aar'))

最后,如果要添加的库具有其他第三方依赖关系,则必须将其添加到 project / android-sources / build.gradle

例如,我要添加ImagePicker,并且必须在依赖项{} 内的 api project(':LibraryFolder') 上方插入以下行>

implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.github.bumptech.glide:glide:4.9.0'

来自the library's source