web-dev-qa-db-ja.com

Android Studio and 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
    }
}
21

compile files('libs/Android-support-v4.jar')を指定すると、すべてのライブラリにv4のサポートが含まれます。あなたがしたいことは、すべてのライブラリがそれに依存することを指定することです:

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

これにより、gradleはすべての依存関係を検出し、これを1回だけ含めることができます。

注:最初にSDK Managerを使用し、「Android Support Repository」と「Google Repository」の2つのMavenリポジトリをダウンロードしてインストールする必要があります。

25
Siva Velusamy

私は問題を見つけました:

サンプルのgradleファイルからその行を削除しました。

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

ただし、これが機能しない理由はわかりません(サポートライブラリにすべて依存する2つまたは3つの外部ライブラリがある場合、gradleファイルに触れずに、どうすればよいですか?

1

IDEのlibsフォルダーに移動し、jarを右クリックしてライブラリをプロジェクトに追加することを選択します。jarが存在しているように見えても、依存関係を確立する必要があります。また、gradleビルドスクリプトを見て、依存関係がそこに表示されることを確認してください。それでも機能しない場合は、プロジェクトでgradle cleanを実行してください。 Intellijのドキュメントには、cleanの機能に関する詳細が記載されています。見る:

stackoverflow gradleビルド

0
Chris