我想在我的 Qt/Android 项目中使用第三方库。在典型的 android 项目中,我必须将 compile
添加到 dependencies
列表中,但是对于 Qt 来说这是不可能的,因为 build.gradle
是由 生成的androiddeployqt
.
Docs says我应该为此使用 project.properties
,但它没有任何意义,因为它的支持自 Android Studio 以来已被删除。此外,我不想在使用 gradle 时自己重新编译所有库。
所以问题是:是否有可能以某种方式 Hook androiddeployqt 以将几行添加到 build.gradle
中?或者也许可以将另一个 build.gradle
放入子目录,然后 gradle 将从中执行任务?
最佳答案
解决方案是把 build.gradle
整齐的 AndroidManifest.xml
文件,内容如下
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
}
allprojects {
repositories {
jcenter()
}
}
apply plugin: 'com.android.application'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'io.grpc:grpc-protobuf-lite:1.5.0'
compile 'io.grpc:grpc-stub:1.5.0'
compile 'javax.annotation:javax.annotation-api:1.2'
compile 'io.grpc:grpc-okhttp:1.5.0'
compile 'com.google.protobuf:protobuf-java:3.4.0'
compile 'io.grpc:grpc-protobuf:1.5.0'
}
android {
compileSdkVersion androidCompileSdkVersion.toInteger()
buildToolsVersion androidBuildToolsVersion
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
res.srcDirs = [qt5AndroidDir + '/res', 'res']
resources.srcDirs = ['src']
renderscript.srcDirs = ['src']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
}
lintOptions {
abortOnError false
}
}
关于androiddeployqt : Qt hook gradle android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45970549/