是否可以在Qt应用程序中使用Android Studio Library(aar文件)?
问题是,我想用Qt实现移动应用程序,但只有Android Studio库。是否可以在Qt项目中包含库或让我为它编写包装类?
如果我必须实现一个包装器,我是否必须使用JNI,是否有任何与C ++和Java lib一起使用它的例子?
答案 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'