Android Studio(0.1.5)でアプリをコンパイルできません。アプリは私が次のように含めている2つのライブラリを使用します。
settings.gradle
include ':myapp',':library',':Android-ColorPickerPreference'
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 project(':library')
compile project(':Android-ColorPickerPreference')
}
Android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
コンパイル時に私はこのメッセージが出ます:
Gradle: A problem occurred configuring project ':myapp'.
> Failed to notify project evaluation listener.
> Configuration with name 'default' not found.
このメッセージを手伝ってもらえますか。ありがとうございます。
私の場合、gradle tasks --info
でコンパイルした後、ログはそこにありました:
空のビルドファイルを使用してプロジェクト ':libraries:VolleyLibrary'を評価しています。
そのため、ライブラリのbuild.gradleファイルが見つかりませんでした。理由はフォルダ構造です。
そうだった
-libraries
--volley
---VolleyLibrary
それはあるはずです
-libraries
--VolleyLibrary
すべてのサブモジュールを引っ張るのを忘れていました。だから私の
compile project(':something')
解決できませんでした。
git submodule update --init
compile fileTree(dir: '//you libraries location//', include: ['Android-ColorPickerPreference'])
代わりに、アプリのgradleファイルで上記の行を使用してください
compile project(':Android-ColorPickerPreference')
それが役に立てば幸い
次の手順で問題が解決しました。
次のスクリプトを追加
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'Android-library'
repositories {
mavenCentral()
}
Android {
compileSdkVersion 18
buildToolsVersion "18.1.0"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
Java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
include ':yourModuleName'
を追加してください私はまた、このエラーに直面しました - 私は図書館プロジェクトのためにbuild.gradleスクリプトを作成するのを忘れました。
もう1つの原因 - モジュールをsettings.gradleに含めようとしていました
include ':MyModule'
project(':MyModule').projectDir = new File(settingsDir, '../../MyModule')
唯一の問題は、Eclipseからモジュールをインポートしただけで、ディレクトリを自分のアプリケーションプロジェクトの外部に移動するのを忘れていた、つまりパス'../../MyModule'
が存在しなかったことです。
私の解決策は、settings.gradleファイルから行を削除することです。これは、存在しないモジュールを表しています。
include ':somesdk'
また、メインプロジェクトのbuild.gradleから対応する行を削除します。
compile project(':somesdk')
このエラーが発生したとき、gitサブモジュールの問題がありました。より詳細な問題の説明についてはgradle tasks --info
を実行してみてください。私は最初gradle tasks --debug
を使いましたが、これは--info
ほど役に立ちませんでした。
プロジェクトにライブラリ(たとえばMyLib)を追加したいとします。次の手順に従ってください。
include ':MyPrj', 'Libraries:MyLib'
です。 注:このincludeステートメントの現在のディレクトリは、メインのプロジェクトフォルダです。プロジェクトをフォルダに貼り付ける場合は、メインプロジェクトディレクトリに対するアドレスを指定する必要があります。私の場合はMyLibをライブラリフォルダに貼り付けます。このライブラリの名前はキーワードではないので、他の名前を選択することができます。+
をクリックしてくださいモジュールの依存関係を選ぶと、あなたのライブラリがあり、あなたが望むようにそれらを選択することができますそれが助けを願っています
私の場合は、Windowsでは動作するがLinuxでは機能しないGradleファイルを使用していました。 include ':SomeProject'
とcompile project(':SomeProject')
は大文字と小文字を区別し、見つかりませんでした。
私にとってはsettings.gradleの下で宣言されたフォルダがありませんでした。
最初の一見ですべてがうまく見えますが、ここを見て回っていると役に立つと思われる答えが見つかりました: https://stackoverflow.com/a/16905808/7944
オリジナルの回答作家でさえも自信があるようには聞こえませんが、フォローアップする価値があります。また、あなたはあなたのディレクトリ構造については何も言わなかったので、私はそれがデフォルトのものを退屈だと思っていますが、確実にはわかりません。
以下のようにsettings.gradleのパスを修正することでこの問題を解決しました。
include ':project-external-module'
project(':project-external-module').projectDir = file('/project/wrong/path')
私は自分のプロジェクトに外部モジュールを含めていましたが、間違ったパスを持っていました。
この正確なエラーのもう一つの潜在的な原因:私はこのエラーがbuild.gradle依存関係のセクションでいくつかの未使用のライブラリをコメントすることで解決されているのを見つけました。これらのパスなどがすべて正しいことを確認してください。
Build.gradleのあなたのコンパイルプロジェクト( ':Android-ColorPickerPreference')エントリを本当によく見てみましょう - 関連するコードとbuild.gradleのこの行をコメントアウトしてみて、そのコンパイルが完了するかどうかを確認してください。パスまたはライブラリの問題.
私は同様の問題を抱えていて、プロジェクトにライブラリを追加するための非常に簡単な方法を見つけました。
これであなたの "app"モジュールであなたはそのJARからのクラスを使うことができます、それは自動的に "import"宣言を見つけて追加しそしてちょうどいいコンパイルすることができるでしょう。唯一の問題は、それが次のように絶対パスで依存関係を追加することです。
compile files('/home/user/proj/theproj/libs/thelib-1.2.3.jar')
あなたの "app/build.gradle"に。
それが役立つことを願っています!
私の場合、build.gradle
ファイルでライブラリのモジュール名(依存関係)のスペルを間違えたときにこのエラーが発生しました。
そのため、モジュールの名前が正しいかどうかを必ず確認してください。
build.gradle
dependencies {
compile project(':module-name-of-the-library')
}
プロジェクト内にモジュールファイルがあるかどうかも確認してください。
たとえば、私はVolleyモジュールを使うアプリを持っています。 Android開発に関する研究中に、 "volley"ディレクトリの中にあるファイルを誤って削除しました.
~/git/Sandbox/Android/HelloWorld/volley $ ll
total 8
drwxrwxr-x 2 ivanleon ivanleon 4096 Jun 16 22:26 ./
drwxrwxr-x 6 ivanleon ivanleon 4096 Jun 17 01:51 ../
プロジェクトを複製した (下記をご覧ください) それから、Android Studioでプロジェクトの同期を取りました (ツール> Android> Gradleファイルとプロジェクトの同期)Gradleのビルドは正常に終了しました (Gradleコンソール:Android Studioの右下) ;)。
~/git/Sandbox/Android/HelloWorld/volley $ git clone https://Android.googlesource.com/platform/frameworks/volley
Cloning into 'volley'...
remote: Counting objects: 164, done
remote: Finding sources: 100% (164/164)
remote: Total 3222 (delta 307), reused 3222 (delta 307)
Receiving objects: 100% (3222/3222), 1.22 MiB | 114.00 KiB/s, done.
Resolving deltas: 100% (307/307), done.
Checking connectivity... done.
~/git/Sandbox/Android/AndroidGetJSON $ ls volley
Android.mk build build.xml pom.xml
proguard-project.txt src bintray.gradle build.gradle
custom_rules.xml proguard.cfg rules.gradle volley.iml
私は最近、gitサブモジュールを介して初期化されたプロジェクトを参照したときにこのエラーに遭遇しました。
サブモジュール(Javaプロジェクト)のルートbuild.gradle
ファイルには、ルートレベルでJavaプラグインが適用されていないことがわかりました。
それだけだった
apply plugin: 'idea'
私はJavaプラグインを追加しました:
apply plugin: 'idea'
apply plugin: 'Java'
Javaプラグインを適用すると、「デフォルトが見つかりません」というメッセージが消え、ビルドは成功しました。
自分のプロジェクトにgoogle-play-services_libを手動で貼り付けたときにこの問題が発生しました。明らかに、play-servicesはその中にbuild.gradleファイルを持っていませんでした。私が学んだ解決策は、この依存関係を私のプロジェクトのbuild.gradleに入れることです(play-servicesディレクトリをハードコピーする代わりに):
compile 'com.google.Android.gms:play-services:4.0.+'
自分のライブラリを手動でインポートしたときにも同じ問題がありました。ライブラリにfile> importモジュールを追加しようとしたところ、問題が解決しました。
これは、インポートまたはコピーしたフォルダ/プロジェクトをライブラリフォルダ内のモジュールとしてコンパイルしているときに発生します。この問題は、build.gradle
ファイルを含めなかった場合に発生していました。ファイルを追加したとき、すべてうまくいった。
私は同じ問題にも直面し、settings.xmlで1つのフラグ(gradle.ext.set( "allowLocalEdits"、true))をfalseに変更することで解決しました。
私にとっては、依存ライブラリの1つが正しいパスに存在しませんが、エラーメッセージはそのライブラリを正しく指していません。
たとえば、私が見逃したのは:library-3
ですが、エラーは:library-1
でスローされます。
貧弱なグラドル。
モジュール/ライブラリのbuild.gradleは、次のように単純なものになります。
apply plugin: 'Java'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
あなたのモジュールが.Java POJOクラスの単なるコレクションであるなら。
それがモデル/エンティティクラスで、アノテーションを使用していて、依存関係がある場合は、それらを以下に追加できます。
apply plugin: 'Java'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
repositories {
mavenCentral()
}
dependencies {
compile 'com.j256.ormlite:ormlite-core:4.48'
compile 'com.j256.ormlite:ormlite-Android:4.48'
compile 'com.j256.ormlite:ormlite-jdbc:4.48'
}
私にとっては、成績では使用できない相対シンボリックリンク(参照先プロジェクトへのリンク)であることがわかりました。 (私は図書館を参照していました)。かなりエッジの効いたエッジケースだと思いますが、将来の誰かに役立つかもしれません。
私は絶対的なシンボリックリンクを置くことによってそれを解決しました。
ln -s ../library
の前ln -s /the/full/path/to/the/library
の後