我有一个为Android构建的C++库,我将其打包为Android存档(
.aar
),以及一些Java类和清单。
一切都是在Android Studio之外完成的。打包
.aar公司
,我有一个目录,其中包含:
-
app/src/main/jniLibs/arm64-v8a/
:带库的目录
-
app/src/main/java
:包含Java类的目录
该目录还包含manifest和Gradle文件。
这是
build.gradle
在
app
目录:
apply plugin: 'com.android.library'
android {
compileSdkVersion 27
buildToolsVersion "27.0.2"
defaultConfig {
minSdkVersion 21
targetSdkVersion 27
}
buildTypes {
release {
minifyEnabled false
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:27.0.2'
}
apply plugin: 'maven-publish'
publishing {
publications {
fooapp(MavenPublication) {
groupId 'com.example'
artifactId 'fooapp'
version "develop"
artifact('build/outputs/aar/app-release.aar')
}
}
repositories {
maven {
mavenLocal()
}
}
}
publishToMavenLocal.dependsOn assemble
默认情况下,所有AAR文件都包含库的剥离版本。我不希望在组装AAR的调试版本时剥离库。
我发现我可以使用
packagingOptions
禁用剥离,所以我尝试添加
packagingOptions { doNotStrip "**/*/*.so" }
在
debug {...}
配置文件的作用域。
我的问题是,AAR的调试版本和发布版本都会被剥离。AAR的两个版本看起来确实不同,因为它们的大小不同(因此md5sum不同)。
在哪里/如何放置
包装选项
在Gradle配置文件中,以便仅剥离发布版本?谢谢