2013-05-18 8 views
17

ライブラリプロジェクトをAndroidスタジオに追加して使用するにはどうすればよいですか?効果) How do I add a library project to Android Studio?またはHow to import relative project with the Android Studio(not jar)で回答を見つけようとしています。 しかし、それは動作しません。また、 "アイテムの親を取得中にエラーが発生しました:指定された名前 'Theme.Sherlock.Light'に一致するリソースが見つかりませんでした。などライブラリプロジェクトをAndroidスタジオに追加して使用するにはどうすればよいですか(一部の質問は有効になりません)

マイSDKツールのREVは、私はマップのサンプルでそうする方法をお見せしましょう22

+0

これは、使用しているプロジェクトの種類を知るのに役立ちます。あなたはスタジオ/ IntelliJの初心者だと思うので、あなたはAndroidサポートで既存のIntelliJプロジェクトを使用していないと思います。 Eclipse Androidプロジェクトをお持ちの場合は、それをgradleにエクスポートして、結果のプロジェクトをインポートしてください。 Eclipseプロジェクトを直接インポートしないでください。次に、build.gradleファイルを変更して依存関係を追加するだけです。スタジオのUIは正しいことをまだ考えていません。 –

答えて

22

です。

Androidスタジオでマップサンプルをインポートし、対応するマップモジュールを作成したとします。

1.あなたがマップのサンプルがあなたのマップモジュールをコンパイルするには、Google APIから必要なすべてのクラスが含まれてGMSのための追加ライブラリモジュールを作成する必要があり

アンドロイドライブラリモジュールを作成します。 >Import moduleと、上記の場所やあなたのライブラリプロジェクトの場所を選択 - 、そうFileに移動するには

$ANDROID_SDK/extras/google/google_play_services/libproject/google-play-services_lib 

ライブラリプロジェクトは次の場所にあります。

既存のソースからモジュールを作成または外部モジュールからモジュールをインポートします。私の場合は、それは既存のソースから来たものです。

Androidスタジオはsrc/resディレクトリを検出しています。

また、ライブラリディレクトリを検出するので、lib /(私の場合はgoogle-play-services.jarのような)にある可能性のあるjarを手動でインポートする手間が省けます。

[EDIT:それはモジュールの依存関係のライブラリを作成しますが、あなたの中にそれらをリンクしていないので、それは実際にあなたの半分しか時間を節約ん]

2.アップデートメインモジュールの依存関係 - ライブラリモジュール

今、難しい部分は、プロジェクトに依存関係としてリンクされていないモジュールを作成したことだけです。

は、そうFileに行くか - >Project structure - >Modules

、あなたのメインモジュールを選択します私の場合マップ、および右側にdependencies]タブに移動します。 +3. Module dependencyをクリックします。

メインモジュールが依存するモジュールを選択し、[OK]をクリックします。

3。あなたのメインモジュールの依存関係を更新してください - Jars

私ののマップではまだモジュールのアクティビティがAPIクラスを見つけることができません。また、モジュール設定(2.のようにgoogle-play-services.jarの依存関係を手動で追加する必要がありますが、の代わりにライブラリを選択してください)モジュール依存);

この点は確実にgradleで自動化できますが、まだ調べていません。新しいIDEを使用する場合、使用するツールが少なくなると、設定エラーを追跡するのが簡単になります。一度に1つのツールだけを追加することをお勧めします:)

+0

Iv'eはあなたが言った通りにこの問題に直面しています: java:package com.google.android.mapsは存在しません.... ? – Ranco

+0

Hum。これも試してみてください:http://stackoverflow.com/questions/16596715/how-can-i-create-an-android-application-in-android-studio-that-uses-the-google-m何かを忘れてしまった(ちょうどこの1つに来た) –

+0

あなたはGradleで建築していますか? (Studioで作成された新しいプロジェクトはGradleを使用します)。はいの場合、上記の答えは完全に間違っています。 build.gradleを介してのみ依存関係を追加し、IDEでUIを使用しないでください。 –

1

これを見つけている人のために。ライブラリプロジェクトのリソース(ABSと同様)にアクセスする必要がある場合は、ライブラリプロジェクト/モジュールを「ライブラリ」ではなく「モジュール依存」として追加するようにしてください。

2

あなたは(私はこれまで理解しているものから、ワークスペースは、プロジェクトで、プロジェクトがIntelliJの/ Androidのスタジオ内のモジュールです)プロジェクトで「ライブラリ」モジュールをインポートした後、

  1. ゴー(一番右の列)File -> Project structure -> Modulesまたはselect the project and hit F4.-> Modules
  2. (中央の列)あなたの「ライブラリ」モジュールを選択し、[依存関係]タブをクリックし
  3. モジュール名の前にあるチェックボックス(エクスポート)をクリックします。 (チェックしてください)
  4. ここで、あなたのモジュールを選択し、左側のペインの+記号をクリックし、 "3.モジュールの依存関係..."を選択し、あなたの 'ライブラリ'プロジェクトを選択し、OKをクリックします。
  5. 今すぐモジュールをコンパイルしてください。

プロジェクトで「ライブラリ」プロジェクトからクラスを見つけることができないというエラーが表示された場合は、モジュールの 'ライブラリ'モジュールの依存関係の 'export'チェックボックスをオンにしてください。希望がそれを助ける:)

+0

これは、新しいGradleプロジェクトを使用していない場合にのみ機能します。新しいGradleプロジェクトについては、build.gradleを編集し、UIの依存関係を編集しないでください。 –

+1

Android Studio(0.2.10以降、IIRC)の新しいバージョンでは、プロジェクトの構造 - >モジュールがなくなりました。今のところ、build.gradleファイルで手作業でこの作業を行う必要があります。 –

+0

ビルドスクリプトを手作業で編集する必要がある場合、IDEを持つことのポイントは何ですか。ばかげてる。 – Almo

1

Studioで作成したプロジェクトまたはADTからGradleにエクスポートしたプロジェクトを使用している場合は、build.gradleを編集して依存関係を変更する必要があります。 プロジェクト構造ダイアログのUIはIDEの依存関係にのみ影響しますが、依存関係設定を持たないGradleを使用します。

build.gradleを編集すると、Studioは両方の場所の依存関係を更新してリロードします。依存関係の詳細については

、およびマルチモジュールの設定(場合にあなたも依存関係としてモジュールを追加している)、GUIを通じてhttp://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Dependencies-Android-Libraries-and-Multi-project-setup

1

編集ライブラリの依存関係をお読みくださいそれが書き込みをしないようお勧めできませんbuild.gradleファイルへの変更。したがって、あなたのプロジェクトはコマンドラインからビルドされません。 次のようにbuild.gradleファイルを直接編集する必要があります。

MyProjectと/

  • APP/
  • ライブラリ/
    • LIB1/
    • LIB2/
次構造に与え例えば

3つのプロジェクトを特定できます。アプリプロジェクトのライブラリに依存する可能性があり、かつ:アプリ

  • :ライブラリ:LIB1
  • :ライブラリ:LIB2
    1. :Gradleでは、以下の名前でそれらを参照しますこれは次の依存関係を宣言することによって行われます:

      dependencies { 
          compile project(':libraries:lib1') 
      } 
      
    7

    以下の手順は、Android Studio 1.3.1

    mylib1はスタンドアロンプ​​ロジェクトです。 mylib1

    1を必要とする私のプロジェクトで

    )settings.gradleファイルを編集

    include ':app' 
    include ':mylib1' ##New line 
    project(':mylib1').projectDir = new File('../../android_lib_repo/mylib1/app/') ##New line 
    

    どこ../../android_lib_repo/mylib1は、プロジェクトディレクトリ

    です。 ./../android_lib_repo/mylib1/app/はモジュールディレクトリ

    2)build.gradleファイルを編集する

    dependencies { 
        compile fileTree(dir: 'libs', include: ['*.jar']) 
        compile 'org.bouncycastle:bcprov-jdk16:1.46' 
        compile 'com.google.android.gms:play-services:6.5.87' 
        compile 'com.android.support:appcompat-v7:21.0.3' 
        compile 'com.android.support:support-v4:21.0.3' 
        compile project(':mylib1') ##New line 
    } 
    
    +0

    あなたのlibプロジェクトがandroid studio guidによって作成された場合、追加する必要があるディレクトリは "../../android_lib_repo/mylib1"です。そして、私はこのリンクがこの[issue](http://stackoverflow.com/questions/17479076/android-studio-add-external-project-to-build-gradle)の詳細について議論していることを発見しました そして私は重複パッケージのAPKは、外部libを使用した後、[ここで解決した(http://stackoverflow.com/questions/20673625/android-gradle-plugin-0-7-0-duplicate-files-during-packaging-of-apk ) – cuble

    関連する問題