Androidプロジェクトを作成したいと思います。 APIレベルは4ですが、新しいデバイスでAPIレベル18を必要とするUiAutomatorでテストしたいと考えています。したがって、アプリは古いデバイスでも動作しますが、自動テストは新しいデバイスで実行されます。ツールの使用方法:複数のライブラリを持つoverrideLibrary
そこで私は、Android Studioで新しいプロジェクトを作成し、UiAutomatorテストライブラリを追加しました:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.1'
androidTestCompile 'com.android.support:support-annotations:23.0.1'
androidTestCompile 'com.android.support.test:runner:0.3'
androidTestCompile 'com.android.support.test:rules:0.3'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
}
それをコンパイルすると、私はエラー
<uses-sdk tools:overrideLibrary="android.support.test"/>
を追加
Error:Execution failed for task ':app:processDebugAndroidTestManifest'.
> java.lang.RuntimeException: Manifest merger failed : uses-sdk:minSdkVersion 4 cannot be smaller than version 8 declared in library [com.android.support.test:runner:0.3] /Users/dom/Entwicklung/MacBookPro/git/GradleTest/app/build/intermediates/exploded-aar/com.android.support.test/runner/0.3/AndroidManifest.xml
Suggestion: use tools:overrideLibrary="android.support.test" to force usage
を取得しますAndroidManifest.xmlに別のエラーが発生します:
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 4 cannot be smaller than version 7 declared in library [com.android.support:appcompat-v7:23.0.1] /Users/dom/Entwicklung/MacBookPro/git/GradleTest/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.1/AndroidManifest.xml
Suggestion: use tools:overrideLibrary="android.support.v7.appcompat" to force usage
<uses-sdk tools:overrideLibrary="android.support.test, android.support.v7.appcompat"/>
にそれを変更するには、再び最初のエラーが発生します。
Error:Execution failed for task ':app:processDebugAndroidTestManifest'.
> java.lang.RuntimeException: Manifest merger failed : uses-sdk:minSdkVersion 4 cannot be smaller than version 8 declared in library [com.android.support.test:runner:0.3] /Users/dom/Entwicklung/MacBookPro/git/GradleTest/app/build/intermediates/exploded-aar/com.android.support.test/runner/0.3/AndroidManifest.xml
Suggestion: use tools:overrideLibrary="android.support.test" to force usage
が、私は最新のAndroid Studioを使用してツールを構築しています。 Android Studioがアプリの作成に使用するgradleコマンドは、
Gradle tasks [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:compileDebugSources, :app:compileDebugAndroidTestSources]
です。問題は再現できます。 with
gradle :app:generateDebugAndroidTestSources :app:compileDebugAndroidTestSources
ツールで複数のライブラリを指定する正しい構文は何ですか:overrideLibrary?私はカンマとスペースが正しいと読んだが、うまくいかないようだ。私はStackOverflowやその他の場所でこれについて多くのことを読んだことがありますが、残念ながらこれまでのところ解決策を見つけることはできませんでした(テストのコメントを除いて)。
ありがとう、それは動作します!Googleがこの問題を文書化するのを気にしなかったので、愚かです... – Egor
androidTest { \t \t \t setRoot ( 'SRC /メイン/ androidTest /') \t \t \t java.srcDirs = [ 'SRC /メイン/ androidTest/javaの/'] \t \t} '' '私にとっては、これはすべての作業を行った。 – ericharlow
@ericharlowはにトリングていますあなたのソリューションを使用します私のapp.gradleにエラーが発生しています** DSLメソッドが見つかりません: 'androidTest()' **私は 'apply plugin: 'java''を使用しようとしましたが、同期しても同じエラーが表示されます。どうすればこの問題を解決できますか? –