0

現在のビルド スクリプトには、ビルド時にファイルの作業バージョンにコピーする特別な /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')
    }


}
4

1 に答える 1

2

に適切なフォルダーを含めることで、ビルドタイプ レベルまたは製品フレーバー レベルでアセットを定義できますsrc

ビルド タイプ リソースは、メイン リソースをオーバーライドするフレーバー リソースをオーバーライドします。

于 2014-01-17T15:24:41.400 に答える