piw*_*iwi 5 android gradle android-ndk
我有一个为Android构建的C ++库,将其打包为Android归档文件(.aar),以及一些Java类和清单。
一切都在Android Studio之外完成。要打包.aar,我有一个目录,其中包含:
app/src/main/jniLibs/arm64-v8a/:带库的目录app/src/main/java:带有Java类的目录该目录还包含清单和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
Run Code Online (Sandbox Code Playgroud)
默认情况下,所有AAR文件都包含该库的精简版本。组装AAR的Debug版本时,我不希望删除该库。
我发现可以packagingOptions用来禁用剥离功能,因此我尝试在配置文件packagingOptions { doNotStrip "**/*/*.so" }的debug {...}范围内添加。
我的问题是AAR的调试版本和发行版都被剥离了。AAR的两个版本看起来确实有所不同,因为它们的大小不同(因此md5sum不同)。
我应该packagingOptions在哪里/如何将我的文件放在Gradle配置文件中,以便仅剥离发行版?谢谢
打包选项在下面指定,然后是类似或等的buildTypes配置。示例:DebugRelease
buildTypes {
debug {
packagingOptions {
doNotStrip '**/*.so'
}
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
packagingOptions {
doNotStrip '**/*.so'
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:您在指定的路径中添加了一个额外的目录 /*/ 。
| 归档时间: |
|
| 查看次数: |
539 次 |
| 最近记录: |