2014-01-07 12 views
5

私はAndroid Studioプロジェクトを設定しています。このプロジェクトでは、Gitリポジトリにサブモジュールとして含まれているいくつかの他のライブラリを使用しています。だから彼らは同じルートフォルダにいなければなりません。 (これが間違っていれば、私も問題を解決できます)兄弟のディレクトリにあるgradleのライブラリを構築する

これまでのところ、compile project ':subdir:subsubdir'コマンドを使用するためには、依存関係の依存関係がサブディレクトリにあると理解していました。

私はincludeコマンドについて何かを見つけましたが、これをどのように使用するのかわかりませんでした。これはどのサブディレクトリにもファイルが必要なようです。だからもう少し掘り下げてflatDirコマンドの範囲がrepositoriesであることがわかりましたが、どうすれば使用できますか?

ここで役に立つかどうかは私のbuild.gradleの場合:

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

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.0" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 19 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:+' 
    compile project('../LibraryProjectName:Library') 
    compile 'com.examlple.library:Library:1.0' 
    repositories { 
     flatDir { 
      dirs '../LibraryProjectName/Library' 
     } 
    } 
} 
+0

いいえ、ライブラリをサブディレクトリに配置する必要はなく、依存関係管理によって論理パスと物理パスが区別されます。今質問を読んで助けてもらえるかどうかを確認します) – Renaud

+0

ツリー階層の簡単な説明を追加できますか?(アプリケーションとlibプロジェクトを区別する) – Renaud

+0

偉大な、私は答えを提供します! ;) – Renaud

答えて

7

私は先週と同じツリー階層でDELTと簡単なサンプルが事を成し遂げるために作られました。

チェックアウトthis sample on github

鍵はsettings.gradleファイルの使用です。このサンプルは、ルートディレクトリとDummyProjectディレクトリの両方から作成できます。

+0

私はあなたの 'DummyLib'にそれ自身がプロジェクト(libaryとsample)を含んでいる2つのディレクトリを持っているので、あなたのクールな例を使用するのに少し問題があります。今私は '../DummyLib/Libary'を参照できるかどうか、あるいは' DummyLib'を使用してそのサブディレクトリを参照する必要があるかどうかはわかりません。あなたの仕事のためにこれまでのところ+1。 – rekire

+0

DummyProject/settings.gradleをライブラリパスに適合させるために編集します – Renaud

+0

これで問題は解決しました。ルートディレクトリのsettings.gradleに1行追加する必要がありました: 'project( ':DummyLib')。projectDir = new File( 'DummyLib/Library')'。今度はうまくいくようです:) – rekire

関連する問題