gpt4 book ai didi

android - 如何避免剥离打包在 AAR 中的 native 库仅用于调试构建类型?

转载 作者:行者123 更新时间:2023-12-03 02:41:04 24 4
gpt4 key购买 nike

我有一个为 Android 构建的 C++ 库,我将其打包为一个 Android 存档 (.aar),以及一些 Java 类和一个 Manifest。

一切都在 Android Studio 之外完成。打包.aar ,我有一个目录,其中包含:

  • app/src/main/jniLibs/arm64-v8a/ : 库目录
  • app/src/main/java : 包含 Java 类的目录

  • 该目录还包含 list 和 Gradle 文件。

    这里是 build.gradleapp目录:
    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)。

    我可以在哪里/如何放置我的 packagingOptions在 Gradle 配置文件中,以便只删除发布版本?谢谢

    最佳答案

    打包选项在 buildTypes 下指定然后像 Debug 这样的配置或 Release等等
    例子:

    buildTypes {
    debug {
    packagingOptions {
    doNotStrip '**/*.so'
    }
    }
    release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    packagingOptions {
    doNotStrip '**/*.so'
    }
    }
    }

    注意:您在指定的路径中添加了一个额外的目录/*/。

    关于android - 如何避免剥离打包在 AAR 中的 native 库仅用于调试构建类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48829644/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com