web-dev-qa-db-ja.com

Gradleビルドを作成しようとする際の問題

最近、Android Studio(Intellijから)に移行しました。現在、ビルドにgradleを使用するようにプロジェクトを移行しようとしています。現在のフォルダー構造に合わせて、試してみました。 Gradleファイル構造に一致するようにファイルを移行します。

私はそれぞれの方法でエラーが発生し、答えを探していましたが、私たちが得ているものと完全に一致するものを見つけることができません。

Gradleファイル構造に移行しようとしたときに発生するエラーは次のとおりです。

  • 何が悪かったのか:

    プロジェクト ':'の構成で問題が発生しました。

    プロジェクト評価リスナーへの通知に失敗しました。 「デフォルト」という名前の構成が見つかりません

古いファイル構造を使用して発生するエラーは次のとおりです。

:<project>:processDebugResources
/Users/kbrown/dev/AndroidClient/<project>/build/res/all/debug/values/values.xml:311: error: Error retrieving parent for item: No resource found that matches the given name '@style/Widget.Sherlock.ActionBar.Solid'.
/Users/kbrown/dev/AndroidClient/<project>/build/res/all/debug/values/values.xml:312: error: Error: No resource found that matches the given name: attr 'background'.
/Users/kbrown/dev/AndroidClient/<project>/build/res/all/debug/values/values.xml:314: error: Error: No resource found that matches the given name: attr 'backgroundSplit'.

どこを見ればよいかについてのアイデア。 ActionBarSherlockのようなライブラリへの参照がいくつかあります。

build.gradle

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

dependencies {
    compile files('libs/Android-support-v4.jar')
    compile files('libs/retrofit-1.0.0-SNAPSHOT.jar')
    compile project(':ThirdParty:ActionBarSherlock')
    compile project(':ThirdParty:drag-sort-listview')
    compile project(':ThirdParty:SlidingMenu')
    compile project(':ThirdParty:Android-ViewPagerIndicator')
}


Android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 17
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            resources.srcDirs = ['src']
            res.srcDirs = ['res']

        }

        instrumentTest.setRoot('../UnitTests/src')
    }
}

settings.gradle

include ':library:Android-ViewPagerIndicator',':library:SlidingMenu',':library:drag-sort-listview',':library:ActionBarSherlock',':<project>'

任意のアイデアをいただければ幸いです。

14
user2449336

あなたの依存関係を見ることによって:

dependencies {
compile files('libs/Android-support-v4.jar')
compile files('libs/retrofit-1.0.0-SNAPSHOT.jar')
compile project(':ThirdParty:ActionBarSherlock')
compile project(':ThirdParty:drag-sort-listview')
compile project(':ThirdParty:SlidingMenu')
compile project(':ThirdParty:Android-ViewPagerIndicator')
}

あなたはあなたのsettings.gradleにあるべきです:
include ':ThirdParty:Android-ViewPagerIndicator' .... のではなく include ':library:Android-ViewPagerIndicator' ...

2
lukas

GradleがAndroidプラグインで定義されたデフォルトのプロジェクトレイアウトを使用できない場合、このエラーが発生することがあります。古いスタイルのレイアウトを使用するようにbuild.gradleを構成しようとしているようですが、忘れてしまいましたいくつかのディレクトリ(つまりJava.srcDirs)を含めるには、次のようにします。

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        Java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
}

依存関係プロジェクトの1つが正しく構成されていない可能性もあります。 ActionBarSherlockおよびその他のサードパーティプロジェクト用のbuild.gradleファイルはありますか?依存関係をコメントアウトし、一度に1つずつ再度追加して、エラーがいつ発生するかを確認してください。

8
Greg

この正確なエラーのもう1つの潜在的な原因:build.gradleの依存関係セクションで未使用のライブラリをコメントすることで、このエラーが解決されたことがわかりました。これらのパスなどがすべて正しいことを確認してください。

0