web-dev-qa-db-ja.com

Android Android Studioを使用したライブラリプロジェクト

この質問はどこかで答えられたかもしれませんが、適切なものを見つけることができませんでした。

Android St​​udioで共通ユーティリティライブラリプロジェクトを作成する方法を知りたい。 Androidアプリプロジェクトで使用するいくつかの一般的なクラスとその中のいくつかの一般的なメソッドを記述したいと思います。おそらく、Windowsの世界で.dllがどのように機能しているか-複数のコンシューマー間で共有できる一連の共通メソッド。

前もって感謝します。

34
kalehv

これを行う最も簡単な方法:

  1. Android Studioで開いたプロジェクトを右クリックし、New > Module)を選択します

  2. 左ペインでAndroid Libraryを選択し、次をクリックします。

  3. すべての詳細を入力し、[アクティビティの作成]、[テーマ]、および必要でない場合はすべてをオフにします。

  4. プロジェクトと同じAPIレベルとNext、Next、Nextを選択します。

プロジェクト内に別のディレクトリが表示されます。ライブラリのbuild.gradleが自動的に設定されます。

モジュール/ライブラリ名が "mylibrary"の場合、

include ':mylibrary' 

プロジェクトのルートディレクトリ内のsettings.gradleファイルに自動的に追加されます。

メインモジュールを開き、次の行を依存関係ブロックに挿入します。

compile project(':mylibrary')

他のプロジェクトで同じライブラリを使用する場合は、File Exploreを使用してライブラリモジュールをその特定のプロジェクトにコピーし、settings.gradleおよびメインモジュールbuild.gradle手動で。

27
pyus13

古い質問ですが、今でもAndroidStudioのライブラリの適切なソリューションではないようです。私はしばらくの間、移行ステップの作成を検討してきましたが、これが私が見つけたものです。

私の「解決策」

共有コードを含むライブラリ(libと呼ばれる)と、そのライブラリのコードを使用するアプリケーションプロジェクト(appと呼ばれる)があるとします。

重要なのは、プロジェクトのルートの_settings.gradle_でプロジェクトを定義することです(_/Some/Path/MyProjects/Project/settings.gradle_)このファイルは既に存在し、_include ':app'_のようなものを含んでいる必要があります。

このファイルを変更してライブラリも含め、次の2行でライブラリを定義します。

/ Some/Path/MyProjects/Project/settings.gradle

_...
// tell gradle we want to include a module called 'lib'
include 'lib'
// tell gradle there is a module called 'lib', found in a specific directory
// Note the /app on the end, the project structure wraps a project around a module, you want to refer that module!
project (':lib').projectDir = new File('/Some/Path/MyProjects/Library/app')
..._

また、プロジェクトbuild.gradle _/Some/Path/MyProjects/Project/app/build.gradle_を編集して、新しく追加されたモジュールlibに依存するようにします

/ Some/Path/MyProjects/Project/app/build.gradle`

_...
dependencies {
    ...
    compile project (':lib') // we want to depend on our library
}
..._

追加

複数の開発者と作業するとき、または柔軟性のために、私は_gradle.properties_ディレクトリで_.gradle_を使用します(通常はhomedirにある* nixベースのシステムの場合、Windowsが探す場所は不明です)。 ディレクトリとファイルを作成する必要があるかもしれませんyourselfを実行します。

このファイルでは、必要に応じて、Gradleファイル全体で使用できる定数を作成できます。たとえば、私のものには次のようなものが含まれています。

_theconstant=/Some/Path/MyProjects/Library/app_

一見欠落している引用符に注意してください(それが本当に必要であるかどうかはわかりません)

project (':lib').projectDir = new File('/Some/Path/MyProjects/Library/app')

project (':lib').projectDir = new File(theconstant)

これで、あなたとあなたのチームはこの定数(マシンごとに異なる場合があります)を定義し、それに応じてパスを変更できます。

長所

  • ライブラリ全体の対処はもうありません!
  • 柔軟性、プロジェクトのウィンドウでライブラリを編集できます
  • 同じプロジェクトで作業する複数の開発者が独自のパスを定義できます
  • ライブラリはプロジェクトのコンパイル時にコンパイルされます(_BuildConfig.DEBUG_!)

短所

  • 今のところなし

これを適切にテストする機会が見つかりませんでしたが、これは当分の間最もエレガントなソリューションのようです!これに関するあなたの考えを聞きたいです。

19
justinvdk

私はただやっている:

include '..:commons'

settings.gradleで

そして:

  compile project(':..:commons')

参照プロジェクトのbuild.gradle内

そのため、よく使用するライブラリをプロジェクトの外部に配置できます

2
stefan

Build.gradleは次のようになります

apply plugin: 'Android-library'

repositories {
    mavenCentral()
} 
dependencies {
compile 'com.Android.support:support-v4:18.0.0'
}

Android {
compileSdkVersion 18
buildToolsVersion '18.1.1'

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

最初の行を見てください

1
Bri6ko

Android Studioで新しいプロジェクトを作成するとき、オプションの1つは「ライブラリとしてマーク」です。
別の方法として、他のプロジェクトと同様にプロジェクトを作成します。それを他の場所で使用する場合、ライブラリのgradleファイルで_apply-plugin "Android"からapply-plugin "Android-library"そしてそれを使用しているアプリへの依存関係として追加します。作成されたプロジェクトをライブラリとして追加する方法の詳細については、 here を参照してください。

0
adityajones

ライブラリを開くときに使用する場合は、通常のプロジェクトとして作成しますproject structure使用したいアプリでDependenciesの下に目的のライブラリを追加します。

0