6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ルートフォルダの異なるプロジェクト/moduleをimportせずに参照する

Posted at

1 現状

svn+eclipseで,こんな構成で管理していたとします。

branch_MyLibs
+AndroidLibA
+JavaLibB

branch_MyApp1
+AndroidApp1(AndroidLibA/JavLibBを参照)

branch_MyApp2
+AndroidApp2(AndroidLibA/JavLibBを参照)

eclipseであれば、workspaceを作成してそれぞれをimportしていけばいいですが、AndroidStudioでimport Moduleをすると、ライブラリプロジェクトそのものがコピーされてきてしまいます。

コピーされてきてしまうと、AndroidApp1のJavaLibBのソースコードを変更しても、当然ながら、AndroidApp2のJavaLibBは変わりません。
これでは意味が無いので、なんとかただ「参照」する方法がないか、探しました。

結果、出来たのでその方法を。

2 前提

AndroidStudio 1.3を使用。
それぞれのプロジェクトはAndroidStudio化しているものとする。

以下サンプル。

branch_MyLibs_AndroidStudio
+AndroidLibA
+JavaLibB

branch_MyApp1_AndroidStudio
+AndroidApp1

簡単な方法としては、いったんAndroidApp1をimportしてAndroidSudioプロジェクトに変更させて、出来たライブラリプロジェクトなどを、上記プロジェクト構成になるよう移動させることかな。
移動させた後はいったんビルドが通らなくなるがそのままでOK.(移動前はビルド通ることを確認してね)

3 手順

(1) settings.gradleを書き換える

settings.gradle
include ':AndroidLibA'
include ':JavaLibB'

project(':AndroidLibA').projectDir = new File('../branch_MyLibs_AndroidStudio/AndroidLibA')
project(':JavaLibB').projectDir =new File('../branch_MyLibs_AndroidStudio/JavaLibB')

相対パスは実際のパスに合わせて下さい。

(2) build.gradleのdependenciesを書き換える

build.gradle(app)
dependencies {
    compile project(':AndroidLibA')
    compile project(':JavaLibB')
}

以上でOK。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?