私はEclipseからプロジェクトを移行しようとしていますが、私が試したことは何も機能していません。Eclipseには3つのプロジェクトがあります(2つのAndroidアプリプロジェクトと1つのAndroidライブラリプロジェクト)。2つのアプリプロジェクトは、ライブラリプロジェクトに依存しています。Gradleエクスポートを実行すると、機能しない3つのプロジェクトが表示されます。私はプロジェクトを再構築することにオープンですが、これがどのように行われるべきかについてのドキュメントを見つけていません。
Eclipseがエクスポートする3つのプロジェクトを連携させる方法はありますか?私は物事を再構築した方がいいですか?そうであれば、これをどのようにすべきかについてのドキュメントがありますか?
更新
プロジェクト全体をGitHubにアップロードしましたhttps://github.com/respectTheCode/android-studio-library-example
アップデート1
Padma Kumarからの提案に基づいて、これは私が試したものです。
- という新しいプロジェクトを作成します
MyApp
- をクリックし
File > New Module
、選択Android Library
して名前を付けますMyLib
- クリック
Build > Make Project
ビルドはこのエラーで失敗します
Module "MyLib" was fully rebuilt due to project configuration/dependencies changes
Compilation completed with 1 error and 0 warnings in 19 sec
1 error
0 warnings
/.../MyApp/MyLib/build/bundles/debug/AndroidManifest.xml
Gradle: <manifest> does not have package attribute.
次に、package
属性をマニフェストに追加してそれを作成しました
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.mylib" >
ビルド後、このエラーが発生します
Module "MyApp" was fully rebuilt due to project configuration/dependencies changes
Compilation completed with 2 errors and 0 warnings in 13 sec
2 errors
0 warnings
/.../MyApp/MyLib/src/main/java/com/example/mylib/MainActivity.java
Gradle: package R does not exist
Gradle: package R does not exist
依存関係を追加しても、エラーには影響がないようです。上から続く
- クリック
File > Project Structure > Modules > MyApp-MyApp
Dependencies
タブに切り替え- クリックし
+ > Module Dependency
てピックMyLib
- クリックし
Apply
てOK
- クリック
Build > Make Project
アップデート2
イーサンからの提案に基づくこれは私たちが得る場所です
2サブプロジェクトbuild.gradle
には正しい部分がすべて含まれているようです。唯一の違いは、プラグインの線の下がであることMyApp/build.gradle
です。
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
ルートプロジェクトbuild.gradle
が空だったので、次のように2つのプロジェクトを追加しました
dependencies {
compile project(":MyLib")
compile project(":MyApp")
}
ビルド時にこのエラーが発生します
Gradle:
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/kevin/GitHub/AppPress/MyApp/build.gradle' line: 2
* What went wrong:
A problem occurred evaluating root project 'MyApp'.
> Could not find method compile() for arguments [project ':MyLib'] on root project 'MyApp'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
アップデート3
これを解決してくれたイーサンに感謝します。
- 追加
compile project(':SubProjects:MyLib')
しますMyLib/build.gradle
compile files('libs/android-support-v4.jar')
から削除MyLib/build.gradle
- プロジェクトを閉じて、gradleからルートプロジェクトをインポートする
アップデート4
0.1.2以降では、compile "com.android.support:support-v4:13.0.0"
ではなくを含めることができるようになりましたcompile files('libs/android-support-v4.jar')
。mavinから提供されているため、複数のプロジェクトに問題なく組み込むことができます。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'android'
dependencies {
compile "com.android.support:support-v4:13.0.0"
compile project(':SubProjects:MyLib')
}
アップデート5
0.1.3以降、ツールバーに「プロジェクトの同期」ボタンがあります。.gradle
ファイルに変更を加えた後、プロジェクトを再インポートする代わりに、それをクリックできます。
compile 'com.google.android:support-v4:r6'
Gradleの代わりに各プロジェクトとMavenプラグイン(以下のbuild.gradleの例のように)に追加すると、compile files('libs/android-support-v4.jar')
両方のプロジェクトに同じものが含まれ、一度しか含まれないことに気付くでしょう。