Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Qt中使用aar库_Java_Android_C++_Qt_Aar - Fatal编程技术网

Java 在Qt中使用aar库

Java 在Qt中使用aar库,java,android,c++,qt,aar,Java,Android,C++,Qt,Aar,可以在Qt应用程序中使用Android Studio库(aar文件)吗 问题是,我想用Qt实现一个移动应用程序,但只有一个Android Studio库。是否可以在Qt项目中包含该库,或者让我为它编写一个包装器类 如果我必须实现包装器,我必须使用JNI,是否有使用C++和java LIB?p> 我找到了对我有用的答案 首先,您必须解压缩aar文件,以便获得jar库文件。 然后,您可以按照此链接中的说明将库包含到apk中: 完成此操作后,您必须实现自己的Java包装器类以与库交互。因此,您必须使

可以在Qt应用程序中使用Android Studio库(aar文件)吗

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


<>如果我必须实现包装器,我必须使用JNI,是否有使用C++和java LIB?p> 我找到了对我有用的答案

首先,您必须解压缩aar文件,以便获得jar库文件。 然后,您可以按照此链接中的说明将库包含到apk中:

完成此操作后,您必须实现自己的Java包装器类以与库交互。因此,您必须使用Qt中的QAndroidJniObject类。这里有更多关于它的信息。


您还可以看看这个示例,其中他们使用自己的java类

您可以直接将.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'))

好吧,万一有人碰到这个我就知道了

如果您还没有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/中(如果该文件尚不存在)

将其插入到依赖项{}

api project(':LibraryFolder')
将其插入底部的settings.gradle文件

include ':LibraryFolder'
在LibraryFolder内创建build.gradle文件并插入:

configurations.maybeCreate("default")
artifacts.add("default", file('Library.aar'))
最后,如果要添加的库具有其他第三方依赖项,则必须将它们添加到project/android sources/build.gradle

例如,我正在添加,必须在依赖项{}中插入下面的行,但在api项目(“:LibraryFolder”)中插入上面的行。


解压aar文件后,我得到了“classes.jar”和其他文件夹和文件。我应该只将“classes.jar”文件包含到我的Qt项目中吗?
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.github.bumptech.glide:glide:4.9.0'