Подтвердить что ты не робот

Android Studio и Gradle - сбой сборки

Я создаю небольшой проект библиотеки вместе с примерным проектом, чтобы проиллюстрировать его использование. Я не могу запустить образец в Android Studio. Я создал проект с нуля. Я знаком с Eclipse, но это моя первая попытка в Android Studio и Gradle.

Указанная ошибка:

Gradle: Выполнение выполнено для задачи ': demo: dexDebug'.

Запуск C:\DevTools\Android\android-studio\sdk\build-tools\android-4.2.2\dx.bat не смогли. См. Вывод

У меня есть следующая структура папок:

- demo
  - build
  - libs
    - android-support-v4.jar
  - src
    - main
      - java
      - res
  - build.gradle
- library
  - build
  - libs
    - android-support-v4.jar
  - src
    - main
      - java
      - res
  - build.gradle
- build.gradle
- settings.gradle

Build.gradle в корне проекта:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

Settings.gradle в корне проекта:

include ':library', ':demo'

Build.gradle для библиотечного модуля:

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

dependencies {
    compile files('libs/android-support-v4.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

Build.gradle для модуля образца:

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

dependencies {
    compile project(':library')
    compile files('libs/android-support-v4.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}
4b9b3361

Ответ 1

Задание compile files('libs/android-support-v4.jar') означает, что в каждую библиотеку включена поддержка v4. То, что вы хотите сделать, это просто указать, что от него зависит каждая библиотека:

dependencies {
    compile 'com.android.support:support-v4:13.0.0'
}

Это позволит gradle обнаруживать все зависимости и включать это только один раз.

Примечание. Сначала вы должны использовать диспетчер SDK и загрузить и установить два репозитория Maven: "Репозиторий поддержки Android" и "Google Repository".

Ответ 2

Я нашел проблему:

Я удалил эту строку из файла образца gradle.

compile files('libs/android-support-v4.jar')

Однако я понятия не имею, почему это не работает (если у меня есть 2 или 3 внешних библиотеки, которые зависят от библиотеки поддержки, как мы должны это делать, не касаясь их файлов gradle?

Ответ 3

Вам следует перейти к папке libs в среде IDE, щелкнуть правой кнопкой мыши на банке и выбрать, чтобы добавить библиотеку в проект, но все равно необходимо установить зависимость, даже несмотря на то, что банка там находится. Также посмотрите на gradle построенный script, чтобы убедиться, что там присутствует зависимость. Если это еще не работает, просто запустите gradle clean в проекте. Документация Intellij даст вам более подробную информацию о том, что делает чистый. см.:

fooobar.com/info/139985/...