Сбой сборки Android Studio, поскольку он не может объединить файлы Renderscript

Я начал перенос одного из наших проектов Android с Eclipse (с использованием ADT) на новую систему сборки Gradle. Поскольку новая Android Studio использует Gradle, я изменил проект, чтобы его можно было правильно импортировать в Android Studio.

Все шаги, которые я сделал, были вне Android Studio (добавление Gradle, создание оболочки, изменение каталогов исходных файлов и т. д.), и как внутри, так и вне Studio результат одинаковый (используя команду «gradlew build» или его варианты, такие как «gradlew aR»).

Ниже приведено сообщение об ошибке:

C:\Users\prog\Documents\git\PROJECT>gradlew aR
:preBuild UP-TO-DATE
:preReleaseBuild UP-TO-DATE
:prepareReleaseDependencies
:compileReleaseAidl
:compileReleaseRenderscript
:generateReleaseBuildConfig
:mergeReleaseAssets
:mergeReleaseResources
C:\Users\prog\Documents\git\PROJECT\build\res\rs\release\raw\levelsfilter
rs.bc: Error: Duplicate resources: C:\Users\prog\Documents\git\PROJECT\bu
ild\res\rs\release\raw\levelsfilterrs.bc:raw/levelsfilterrs, C:\Users\prog\Docum
ents\git\PROJECT\src\main\res\raw\levelsfilterrs.bc:raw/levelsfilterrs
:mergeReleaseResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':mergeReleaseResources'.
C:\Users\prog\Documents\git\PROJECT\build\res\rs\release\raw\levelsfilt
errs.bc: Error: Duplicate resources: C:\Users\prog\Documents\git\PROJECT\
build\res\rs\release\raw\levelsfilterrs.bc:raw/levelsfilterrs, C:\Users\prog\Doc
uments\git\PROJECT\src\main\res\raw\levelsfilterrs.bc:raw/levelsfilterrs

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.

BUILD FAILED

Total time: 4.277 secs

Вот файл сборки Gradle.

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}

apply plugin: 'android'

android {
    compileSdkVersion 11
    buildToolsVersion "19"
}

Файлы RS следуют соглашению о каталогах, например "src/main/rs". Раньше они были рядом с файлами *.java, которые их использовали.


person Akrides    schedule 13.12.2013    source источник


Ответы (1)


Просто удалите файл bc в папке ресурсов.

Ваш случай:

remove=> C:\Users\prog\Documents\git\PROJECT\src\main\res\raw\levelsfilterrs.bc

Причина:

После компиляции рендерскрипта llvm сгенерирует файл *.bc, который будет объединен с окончательным apk. Поскольку у вас уже есть файл *.bc, это привело к сбою задачи объединения ресурсов.

person Jason YiZhang Chen    schedule 26.02.2014