最近、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>'
任意のアイデアをいただければ幸いです。
あなたの依存関係を見ることによって:
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' ...
。
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つずつ再度追加して、エラーがいつ発生するかを確認してください。
この正確なエラーのもう1つの潜在的な原因:build.gradleの依存関係セクションで未使用のライブラリをコメントすることで、このエラーが解決されたことがわかりました。これらのパスなどがすべて正しいことを確認してください。