2017-04-20 3 views
1

私はandroid testing codelabに従っており、同様の方法で自分のアプリをモデル化しようとしています。そうすることは、それをすべてうまく広げたわけではありません。実行しようとすると、AppCompatActivityやTextInputLayoutなどのサポートライブラリクラスを使用しているときに私はエラーが発生します。エラーは言う:Android計測機器ビルド

The type android.support.design.widget.TextInputLayout cannot be found in source files, imported jack libs or the classpath 

私は./gradlew app:dependenciesを実行し、実際にこれらがクラスパスに見つからない:

androidTestCompile - Classpath for compiling the androidTest sources. 
+--- com.android.support.test:runner:0.5 
| +--- com.android.support:support-annotations:23.1.1 -> 25.3.1 
| +--- junit:junit:4.12 
| | \--- org.hamcrest:hamcrest-core:1.3 
| \--- com.android.support.test:exposed-instrumentation-api-publish:0.5 
+--- com.android.support.test:rules:0.5 
| \--- com.android.support.test:runner:0.5 (*) 
+--- com.android.support.test.espresso:espresso-core:2.2.2 
| +--- com.squareup:javawriter:2.1.1 
| +--- com.android.support.test:rules:0.5 (*) 
| +--- com.android.support.test:runner:0.5 (*) 
| +--- javax.inject:javax.inject:1 
| +--- org.hamcrest:hamcrest-library:1.3 
| | \--- org.hamcrest:hamcrest-core:1.3 
| +--- org.hamcrest:hamcrest-integration:1.3 
| | \--- org.hamcrest:hamcrest-library:1.3 (*) 
| \--- com.google.code.findbugs:jsr305:2.0.1 
+--- com.android.support.test.espresso:espresso-contrib:2.2.2 
| +--- com.google.android.apps.common.testing.accessibility.framework:accessibility-test-framework:2.0 
| | \--- org.hamcrest:hamcrest-core:1.3 
| \--- com.android.support.test.espresso:espresso-core:2.2.2 (*) 
\--- com.android.support.test.espresso:espresso-intents:2.2.2 
    \--- com.android.support.test.espresso:espresso-core:2.2.2 (*) 

私のbuild.gradleファイルには、以下があります。

dependencies { 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support:design:25.3.1' 
    compile 'com.android.support:support-v4:25.3.1' 
    compile 'com.android.support:cardview-v7:25.3.1' 
    compile 'com.android.support:recyclerview-v7:25.3.1' 
    compile 'com.android.support:percent:25.3.1' 
    compile 'com.android.support:customtabs:25.3.1' 
    compile 'com.android.support:support-vector-drawable:25.3.1' 
    ... 
    androidTestCompile 'com.android.support.test:runner:0.5' 
    androidTestCompile 'com.android.support.test:rules:0.5' 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' 
    androidTestCompile "com.android.support.test.espresso:espresso-contrib:2.2.2" 
    androidTestCompile "com.android.support.test.espresso:espresso-intents:2.2.2" 
} 
configurations.all { 
    resolutionStrategy.force "com.android.support:support-annotations:25.3.1" 
} 
configurations.compile.dependencies.each { compileDependency -> 
    println "Excluding compile dependency: ${compileDependency.getName()}" 
    configurations.androidTestCompile.dependencies.each { androidTestCompileDependency -> 
     configurations.androidTestCompile.exclude module: "${compileDependency.getName()}" 
    } 
} 

configurations.allをcodelabから直接取得されたconfigurations.compileが含まれます。私はandroidTestCompileの依存関係としてサポートライブラリを追加しようとしましたが、何もしないようです。 configurations.compileブロックを削除すると、androidTestCompileの依存関係ツリーにサポートライブラリが表示されますが、ビルド自体は同じエラーで失敗します。

残念ながら、コード全体を公開することはできません。誰かがこれのようなものに遭遇したのですか?どのようにこれを解決するための任意の考えですか?

UPDATE:

を明確にするために、すべてのものは、通常のデバッグとリリースのビルド時に素晴らしい作品。 androidTestビルドを実行している場合にのみ、このエラーが表示されます。

UPDATE 2:

問題は、ジャックのビルドツールチェーンの周りにあるように思われます。私はまだこれを解決する方法がわかりません。

+0

'dependencies'ブロックに' com.android.support:design:25.3.1''を 'compile '宣言していますか? – Egor

+0

うわー、これらを含めるように更新します。アプリは100%構築され実行されます。だから私はcom.android.support:appcompat-v7:25.3.1へのアクセス権も持っています – TheHebrewHammer

答えて

0

最終的に答えが見つかりました。

この問題はジャックツールチェーンとサポートリポジトリ/ GoogleのリポジトリV46を使用して固有のものです。バージョン45のGoogle Repositoryを使用しているときはすべてうまくいくが、バージョン46では計装テスト用のビルドが中断される。私はJava 2.4の正式なサポートが出てから、これが問題になるとは思わない。

関連する問題