2013-08-20 12 views
7

私のAndroidプロジェクトをgradleビルドシステムに移行しています。AndroidプロジェクトをIntegration Test Androidプロジェクトからインポートできません。gradleビルドシステムを使用してAndroid apkを作成する

いくつかのアンドロイドライブラリで複数のプロジェクト設定を使用していますが、うまくいきますが、テストプロジェクトを複数のプロジェクト設定でセットアップする際に問題があります。外的理由から、私はこの構造を使い続ける必要があります。

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

私の現在の構成ファイルがどのように見える

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

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で定義されたアンドロイドクラスが見つからないため、MyAppは正しくコンパイルされますが、Instrumentation-Testsのコンパイルは失敗します。

私はドキュメントや記事をたくさん読んできましたが、私はそれを動作させることができなかった、私はまた、使用してみましたか:

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

依存性を宣言するとき。

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

+0

あなたは次のようなものを読んでいますか?http://stackoverflow.com/questions/16586409/how-can-i-create-tests-in-android-studioとthis:http://tools.android。 com/tech-docs/new-build-system/user-guide#TOC-Testing?あなたがそれらの指示に従っていたのですが、あなたの現在のセットアップでうまくいくなら、ソースセットの場所を変更したのでしょうか?おそらく、プロジェクトルートを基準にテス​​トソースディレクトリを指定する必要があります。 – jDutton

+0

私はすべてをグラデル構造に動かしてしまいました。私はinstrumentationTestフォルダ内のすべての私の計測テスト(ユニットと機能)も動かしました。 – David

答えて

1

ライブラリプロジェクトを依存関係として指定することしかできないため、これは動作しません(現在)。それはbuild.gradle年代に

のでcompile project(':MyApp')のMyAppの場合のためには、apply plugin: 'android-library'でのAndroidライブラリプロジェクトされている必要があります。それは確かに意味をなさない。

別々のテストプロジェクトを作成するには、別のものが必要です(私は自分自身を研究しています)。

編集:Gradleのテストでは、Antを使用してください。

+0

私は全てをグラデル構造に移動しました。私はinstrumentationTestフォルダ内のすべての計測テスト(ユニットと機能)も移動しました。 – David

関連する問題