【问题标题】:Gradle + Android, want to overwrite /assets with custom folder in buildFlavorGradle + Android,想用 buildFlavor 中的自定义文件夹覆盖 /assets
【发布时间】:2013-09-13 21:12:28
【问题描述】:

在我当前的构建脚本中,我有特殊的 /res/ 和 /assets 文件夹,我在构建时将它们复制到文件的工作版本上。 /assets/ 是捆绑数据(sql 和文本文件),而 /res/values/ 我有一个 connection.xml 值文件。

工作目录中已经有这些文件的副本,但是在构建时我想使用我项目的 /config/ 文件夹中的文件并将它们复制到当前目录中的 /res 和 /assets 文件中构建。

在我的详细日志记录中,我得到一个 尝试复制文件时出现“com.android.ide.common.res2.DuplicateDataException”。

知道如何处理这个问题吗?我可以使文件名唯一,但其中的键/值对不会?这样能解决问题吗?

我的 Build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.0'
    }
}
apply plugin: 'android'

android {
    compileSdkVersion "Google Inc.:Google APIs:18"
    buildToolsVersion "17"

    signingConfigs {
        release {
            storeFile file("../../TioClient/keystore/android.keystore")
            storePassword "REDACTED"
            keyAlias "pge-android"
            keyPassword "lightmaker"
        }
    }

    buildTypes {
        dev {
            signingConfig signingConfigs.release
        }
        tps {
            signingConfig signingConfigs.release
        }
        production {
            signingConfig signingConfigs.release
        }
    }

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 15
    }

    dependencies {
       compile project(':TioClient'); 
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = []
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
        tps {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = []
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res','config/tps/res']
            assets.srcDirs = ['assets', 'config/tps/assets']

        }
        instrumentTest.setRoot('tests')
    }


}

【问题讨论】:

    标签: android gradle


    【解决方案1】:

    您可以通过在src 中包含适当的文件夹来在构建类型级别或产品风味级别定义资产。

    构建类型资源覆盖覆盖主要资源的风味资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 2014-07-01
      相关资源
      最近更新 更多