Entries

AndroidStudio 2.2.3 : プロキシ経由かつフィルタリングがうるさい環境でビルドを通し、テストファイル(ExampleUnitTest)を動かすまで(2017-01-12)

AndroidStudioでプロジェクトを作った時に生成されるテストファイル(ExampleUnitTest)が
動かなかったので対処しました。

OS  :  Windows10 Pro 64bit
Java :  C:\Program Files\Java\jdk1.8.0_102
その他、前提: File -> Settings -> Build, Execution, Deployment -> Gradle
           の チェックボタン "Offline work" が チェックあり
           (このチェックが入っていないと、処理が戻ってこなくなります)

まずは・・・
Android Studio2.2.3で作った新規プロジェクトを、プロキシ経由かつフィルタリングが
うるさい環境でビルドしたらエラーが出ました。こんな感じです。

いきなりドバドバでるエラー


自動生成されるテストファイルを実行する必要がなければ、build.gradle の一部を
以下のようにコメント化すればビルドが通ります。でもなんか気持ち悪いです。

テストする必要がない時にコメント化する行


上記のコメント化をせずにビルドを通したければ、以下のサイトの記載内容が参考になります。

「Error:(23, 17) Failed to resolve: junit:junit:4.12」
http://qiita.com/izuki_y/items/48e5e3f94c99b1127a35

build.gradleに

repositories {
  maven { url 'http://repo1.maven.org/maven2' }
}

を追加したら確かにビルドが通りました。ブラウザのアドレスバーに直接 http://repo1.maven.org/maven2 を
叩くと繋がる、ってことは少なくとも私の作業環境ではこのアドレスがフィルタリングに
引っかからないってことなのでしょう。
ただ、この修正だけでは、テストファイルを Run させた時にエラーが出ます。

テストができないことを示す画面

ExampleUnitTest.javaをRunしてみましたが、こんなエラーが出ます。
ソースコード内に赤い文字列が数か所あることから、まだ問題があることは明白です。


これはプロキシの問題ではなく、フィルタリングのせいで、落としたいデータのあるURLが
引っかかってしまっていると考えられます。この問題を解決するには、必要なファイルを
別の環境から落としておいて、プロジェクトに直接追加すれば良いはずです。
やってみました。

1. JUnitのサイトから2つのファイルを落とす。
2. libsの下に2ファイルを入れる。
3. 依存関係(dependency)を設定する。

これで動きました。詳細を以下にまとめていきます。

1. JUnitのサイトから2つのファイルを落とす。

 (1)http://junit.org/junit4/ にアクセスして "Download and install"を選択する

jUnitのサイトから必要なファイルをダウンロードする


 (2)○で囲まれた所を選んでファイルを任意の場所にダウンロードする。
aspf_05.png


まずは、junit.jar を落としてみる。

ダウンロードする2つのファイル


 (3)同様に、hamcrest-core.jar も落とす。


2.libsの下に2ファイルを入れる。

 (1)下記画像で示す場所に、さきほどダウンロードした2つのファイルを
    ドラッグしてコピーする。

2つのjarファイルのコピー

   「OK」を押す
確認を聞かれるのでオッケー!
  
  こんな感じになります   
2つのjarファイルがコピーされました


3.2つのファイルの情報をDependencies に設定する

  (1)メニュー File -> Project Structure… でダイアログを表示
Dependencies画面


  (2)'+' -> "File Dependency" を選択
File Dependencyで登録
 
  (3)さきほどlibsにコピーしたファイルを選ぶ 
aspf_12.png

 (4)もう1つのファイルについても同様の処理を行う

   登録後はこんな感じです。
jarファイルの選択と登録


4.これでリビルドしてみる。BUILD SUCCESSFULで終了したら、
  ExampleUnitTestを実行してみる。

テストコードの実行

この時、上記のように右ボタンクリックで実行させると、前にエラーが発生した場合に
その情報がリセットされていない時があるので、”ExampleUnitTest”をダブルクリックして、
ソースを表示させた状態で、実行ボタンで実行させると前の情報が残らず、
更新された状態で実行できたりします。
(わりとこんなレベルでハマることがあるので一応書いておきます。
 AndroidStudioはとにかく、手を加えた後に、Sync now, Clear Project, , Rebuild Project
等のリセット処理をこまめに行う必要があります!!)

テストの実行が完了


動きました(`・ω・´)

これでとりあえず安心ですが、またすぐバージョンアップが来て仕様が変わるんだろうなぁ。
ふぅ。

(2017-01-12)


スポンサーサイト
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://tadpolizemedia.blog118.fc2.com/tb.php/261-244282f3

0件のトラックバック

0件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

 二代目松四郎

Author: 二代目松四郎


「カメラと動画(+スチル写真)」
「音響と音楽」
「プログラミング」
を主なテーマに活動しています。
映画館と美術館と音楽ホールと
古い街並みが私の学校。

宮城県仙台市在住。

カテゴリー

ブログ内検索

ブロとも申請フォーム

この人とブロともになる

Counter