2013-10-10 6 views
31

からGradleのプロジェクトが必要です。 MyProjectは、Loggerライブラリを使用する必要がある、標準のAndroidプロジェクトプロジェクトです。は、私はこのようなディレクトリ/プロジェクトのセットアップを持っている別のディレクトリ

私はAndroidスタジオを使用しており、Loggerを外部ライブラリに追加しようとしました。これは開発中に機能しますが、ビルド時に見つからないクラスに関するメッセージが表示されます。

私はGradleのに完全に新しいんだけど、MyProjectと以内に私のbuild.gradleに次のように試してみました:グローバル「依存関係」セクションではなく、「アンドロイドへの依存関係を追加する

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

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.1.0" 

    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 18 
    } 

    dependencies { 
     compile files("../Logger") 
    } 
} 

dependencies { 
    compile 'com.android.support:gridlayout-v7:18.0.0' 
    compile 'com.android.support:appcompat-v7:18.0.0' 
} 
+3

このようにしますか? http://stackoverflow.com/questions/17479076/android-studio-add-external-project-to-build-gradle – Lesleh

+0

これは残念ながらそれを試しました。 ':logger' project( ':logger')。projectDir = new File(settingsDir、 '../SysLog') – euantorano

答えて

79

最も簡単な方法LoggerプロジェクトをサブプロジェクトとしてMyProjectをマルチプロジェクトにすることです。

dependencies { 
    compile 'com.android.support:gridlayout-v7:18.0.0' 
    compile 'com.android.support:appcompat-v7:18.0.0' 
    compile project(":logger") 
} 
+0

ありがとう、これは私が必要としたものです。私がこれを追加するとすぐにプロジェクトは正常にコンパイルされました。 – euantorano

+0

Gradleホームディレクトリのgradle.propertiesファイルのプロパティ値を使用できますか? – Rick

+0

これは私がちょうど私がやっているかもしれないと推測したもので、正確に私が探していた答えです:-D – Antinous

3

てみてください>依存関係 "を参照してください。 開発中に、 "アンドロイド"設定が使用されますが、ランタイムをパッケージ化することはできません。

dependencies { 
    compile 'com.android.support:gridlayout-v7:18.0.0' 
    compile 'com.android.support:appcompat-v7:18.0.0' 
    compile files("../Logger") 
} 

また、ここのような共有親ディレクトリ内build.gradleとsettings.gradleで 、マルチプロジェクトGradleの構成を設定を検討する価値があるかもしれません:http://www.gradle.org/docs/current/userguide/multi_project_builds.html

+0

残念なことに、これを試してみました。まだ同じエラーが発生しています。 – euantorano

3

のAndroidメーカー2.2.3:

に追加あなたが今、プロジェクトとしてこのLIBを参照することができますMyProjectbuild.gradle

include ":logger" 
project(":logger").projectDir = file("../logger") 

MyProjectディレクトリ内

settings.gradle settings.gradle。

include ':app', ':new_lib' 
project(':new_lib').projectDir = new File('../new_lib/app') 
  • パスは、 を取り組んでいるプロジェクトのルートからの相対でなければなりません。
  • 参照しているモジュールには、 "app" ディレクトリへの参照が必要です。

次に、プロジェクト構造|モジュールは依存関係をセットアップします。

+0

私はAndroid Studioでこれを試しましたが、私のルートプロジェクトはもはやライブラリと見なされなくなりました利用可能なモジュールとして ":new_lib"という名前だけを表示します。元の 'app'はモジュールリストにはもうありません。 – ZeroStatic

関連する問題