7

Android プロジェクトを gradle ビルド システムに移行していますが、統合テスト Android プロジェクトから Android プロジェクトをインポートできません。

複数の Android ライブラリでマルチプロジェクト構成を使用しており、うまく機能していますが、マルチプロジェクト設定でテスト プロジェクトを設定する際に問題が発生しています。外的な理由から、この構造を使い続ける必要があります。

MyProject/
 | settings.gradle
 + MyApp/
    | build.gradle
    | src
    | res
    | libs
 + Instrumentation-Tests/
    | build.gradle
    | src
    | res
    | libs

現在の構成ファイルは次のようになります。

settings.gradle:

include ':MyApp', 'Instrumentation-Tests'

MyAppp/build.gradle:

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile files('.....jar')
    compile project('....')
    compile 'com.android.support:support-v4:13.0.+'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 16
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

    }
}

そして最後に私のInstrumentation-Tests/build.gradle

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile project(':MyApp')
    compile files('.....jar')
    compile 'com.android.support:support-v4:13.0.+'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 16
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

gradle compileDebugプロジェクトを実行するMyAppと (およびそのすべてのモジュールが) 正しくコンパイルされますがInstrumentation-Tests、.NET で定義されている Android クラスが見つからないため、コンパイルは失敗しますMyApp

ドキュメントと多くの投稿を読みましたが、機能させることができませんでした。次のものも試しました:

compile(project(':MyApp')) { transitive = true }

依存関係を宣言するとき。

誰かが同じ問題を抱えていましたか?MyAppプロジェクトの依存関係の出力をコンパイルのクラスパスに 含めたいのですが、androidプラグインInstrumentation-Testsを使用してそれが可能かどうかはわかりません。gradle

4

1 に答える 1

1

依存関係として指定できるのはライブラリ プロジェクトのみであるため、これは (現時点では) 機能しません。

したがって、compile project(':MyApp') MyAppの場合は、 build.gradleを含む Android ライブラリ プロジェクトである必要がapply plugin: 'android-library'あります。これは確かに意味がありません。

別のテスト プロジェクトを作成するには、別のものが必要です (これについては私自身が調査中です)。

EDIT:Gradleでのテストをあきらめて、そのためにAntを使用してください。

于 2013-09-15T10:55:00.470 に答える