gpt4 book ai didi

android - 使用 Gradle 的多种口味的不同 list

转载 作者:行者123 更新时间:2023-12-03 06:30:15 25 4
gpt4 key购买 nike

我有这种情况:4 种口味,我必须总共有 8 个构建,4 个应用程序在 list 中声明了可访问性,4 个没有。
我发现作为唯一解决方案在 list 中声明 2 个 buildType,以便我可以为 buildType 创建一个 sourceSets,指定 list src。但是通过这种方式,我正在构建

  • 可访问性
  • 无法访问
  • 调试
  • 发布

  • 所以现在我无法访问 调试 进行测试,所以我必须创建其他 2 个 buildTypes 指定 debuggable true。最终情况是
  • 可访问性
  • 辅助功能调试
  • 无法访问
  • 无辅助功能调试
  • 调试
  • 发布

  • 那些只是 构建类型 ,但我也有 4 种口味,所以我的构建变体是 24。

    这基本上糟透了。没有办法声明默认 debug 和 release 使用的两个 sourceSet 吗?

    要求
    flavor1/accessibilty
    flavor1/no accessibilty
    flavor2/accessibilty
    flavor2/no accessibilty
    ecc..

    首次实现
     buildTypes {
    noaccesibiltyDebug {
    minifyEnabled false
    debuggable true
    }
    accessibilityDebug {
    minifyEnabled false
    debuggable true
    }
    noaccessibilty {
    minifyEnabled true
    debuggable false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    accessibility {
    minifyEnabled true
    debuggable false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    }
    sourceSets {
    noaccessibiltyDebug {
    manifest.srcFile('/src/main/AndroidManifest.xml')
    }
    accessibilityDebug {
    manifest.srcFile('/src/main/accessibility/AndroidManifest.xml')
    }
    noaccessibilty {
    manifest.srcFile('/src/main/AndroidManifest.xml')
    }
    accessibility {
    manifest.srcFile('/src/main/accessibility/AndroidManifest.xml')
    }
    }

    结果
    build/output/apk/accessibilty
    /noaccessibilty
    /accessibiltyDebug
    /noaccessibiltyRelease
    /debug <- **********useless**********
    /release <- **********useless**********

    最佳答案

    我不确定您是否应该依赖构建类型。仅使用口味适合这种情况。
    例如,你应该像往常一样设置你的主 list ,在你的 build.gradle 中,你可以声明一个补充 list :

    android.sourceSets.flavor1{
    res {
    srcDir 'app/src/flavor1/res'
    }
    resources {
    srcDir 'app/src/flavor1/res'
    }
    java {
    srcDir 'app/src/flavor1/src'
    }
    manifest {
    srcFile 'app/src/flavor1/AndroidManifest.xml'
    }
    }

    然后在您的特定 flavor1 Manifest 文件中,您可以使用 tools:node 标签添加声明或删除它们,例如
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove"/>

    然后 Manifest 合并工具将使用所需的声明构建您的所有风格。

    关于android - 使用 Gradle 的多种口味的不同 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48763462/

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