145

プロジェクトを Eclipse から移行しようとしていますが、試したことはありません。Eclipse には 3 つのプロジェクトがあります (2 つの Android アプリ プロジェクトと 1 つの Android ライブラリ プロジェクト)。2 つのアプリ プロジェクトは、ライブラリ プロジェクトに依存します。gradle export を実行すると、動作しない 3 つのプロジェクトが発生します。私はプロジェクトの再構築を受け入れていますが、これをどのように行うべきかについてのドキュメントは見つかりませんでした。

Eclipse がエクスポートする 3 つのプロジェクトを連携させる方法はありますか? 物事を再構築した方が良いですか?もしそうなら、これをどのように行うべきかについての文書はありますか?

アップデート

プロジェクト全体を GitHub https://github.com/respectTheCode/android-studio-library-exampleにアップロードしました

更新 1

Padma Kumar からの提案に基づいて、これが私が試したものです。

  1. という名前の新しいプロジェクトを作成しますMyApp
  2. をクリックしFile > New Module、選択Android Libraryして名前を付けますMyLib
  3. クリック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

依存関係を追加しても、エラーには影響がないようです。上からの続き

  1. クリックFile > Project Structure > Modules > MyApp-MyApp
  2. Dependenciesタブに切り替え
  3. クリックし+ > Module Dependencyて選択MyLib
  4. クリックしApplyOK
  5. クリック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

これを解決してくれたイーサンに感謝します。

  1. compile project(':SubProjects:MyLib')に追加MyLib/build.gradle
  2. から削除compile files('libs/android-support-v4.jar')しますMyLib/build.gradle
  3. プロジェクトを閉じて、gradle からルート プロジェクトをインポートします。

更新 4

compile "com.android.support:support-v4:13.0.0"0.1.2 の時点で、代わりに を含めることができるようになり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ます。

4

4 に答える 4

3

これがMacユーザー向けの私のソリューションです。ウィンドウでも機能すると思います:

まず、Android Studio ツールバーに移動します

Build > Make Project (オンラインでファイルをダウンロードできる状態で) を選択してから、

Build > Compile Module "your app name is shown here" (まだオンラインでファイルを
ダウンロードして終了させます)

アプリを実行すると、エミュレーターが起動して構成され、実行されます。

それだ!!!ハッピーコーディングみんな!!!!!!!!

于 2014-04-24T21:36:27.997 に答える
1

Gradle Build Tools 2.2.0+ - すべてが機能します

これが正しいやり方です

実験的で率直に言って、NDK とそのすべてのハッカーにうんざりしているのを避けようとする中で、Gradle Build Tools の 2.2.x が出てきて、今ではうまく動作することをうれしく思います。重要なのは、ビルド スクリプトのパス引数をor に変更し、パス引数をポイントするexternalNativeBuildand ポインティングndkBuildパス引数です。Android.mkndkBuildcmakeCMakeLists.txt

android {
    compileSdkVersion 19
    buildToolsVersion "25.0.2"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 19

        ndk {
            abiFilters 'armeabi', 'armeabi-v7a', 'x86'
        }

        externalNativeBuild {
            cmake {
                cppFlags '-std=c++11'
                arguments '-DANDROID_TOOLCHAIN=clang',
                        '-DANDROID_PLATFORM=android-19',
                        '-DANDROID_STL=gnustl_static',
                        '-DANDROID_ARM_NEON=TRUE',
                        '-DANDROID_CPP_FEATURES=exceptions rtti'
            }
        }
    }

    externalNativeBuild {
        cmake {
             path 'src/main/jni/CMakeLists.txt'
        }
        //ndkBuild {
        //   path 'src/main/jni/Android.mk'
        //}
    }
}

詳細については、ネイティブ コードの追加に関する Google のページを確認してください。

これが正しくセットアップ./gradlew installDebugされたら、すぐに使用できます。また、Android NDK で gcc が非推奨になったため、NDK が clang に移行していることにも注意する必要があります。

于 2017-02-23T09:03:20.623 に答える