Android Studioのプロクシ環境対策の整理
はじめに
久しぶりにProxy環境で動かしていて、結構ハマったので書き出しておく
動作環境
- windows 10
- 8G
- SSDタイプのデスクトップ
- AS 2.3.3 / AS 3.0-Beta7
- gradle plugin 2.3.3 / gradle plugin 3.0-beta7
- gradle runtime-4.2.1-bin
前提条件
以下のproxy設定のどちらかを設定しないとつながらない状態(on Password無し)
- https://myproxy.co.jp/proxy.pac
- 最初教えてもらったのはこっちの方。。 PCのネットワークのproxy設定だとこっちでよかった。。。
- myproxy.co.jp:8080
- 後から情報貰ったorz
IDEでのproxy
settingからproxyで検索
下記はポートを入れる例。URLの場合はauto proxyの方にURLを入れる
Gradle Sync時のproxy
Gradleは外部実行だから、ココらへんが引っかかる。
wraper自体のダウンロード
gradlew または gradlew.bat の先頭に下記書きましょうという話がありましたが、これgitとかにコミットされてしまうとよく忘れる・・*1
set JAVA_OPTS=-DproxyHost=myproxy.co.jp -DproxyPort=8080 -Dhttp.proxyUser= -Dhttp.proxyPassword= -Dhttps.proxyUser= -Dhttps.proxyPassword=
自分がやってるのは下記の方法
- warper/gradle-warper.properties
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-bin.zip distributionUrl=file\:C\:/android/sdk/gradle-4.2.1-bin.zip
gradleの実行自体で引っかかる箇所
一時期 httpsでアクセス出来ない場合は、httpでアクセスすればいい? みたいな話がありましたが
- root/build.gradle
jcenter()
=>
jcenter { url "http://jcenter.bintray.com" }
これ google()レポジトリだと httpsしかサポートしてないので無理>< *2
google() or maven { url 'https://maven.google.com'} or maven { url 'https://dl.google.com/dl/android/maven2/''}
で、結局は下記の位置にgradle.proptiesを置いて対処 *3
- $HOME/.gradle/gradle.properties
systemProp.http.proxyHost=myproxy.co.jp systemProp.http.proxyPort=8080 systemProp.http.proxyUser= systemProp.http.proxyPassword= systemProp.https.proxyHost=myproxy.co.jp systemProp.https.proxyPort=8080 systemProp.https.proxyUser= systemProp.https.proxyPassword=
で何気に忘れてたのが、
- systemProp.https の方設定しないとSSL通信がエラー
systemProp.https.proxyUser/proxyPassword とかない場合は指定しない。下手に指定すると誤爆する
誤爆した例(ネットサンプルのコピペしたので・・<汗)
systemProp.https.proxyUser=**** systemProp.https.proxyPassword=****
emulator
よくググると下記な手順が出てくるんですが、これだめ・・・。
httpsのものを指定しているからでしょうか・・・(汗
# emulator -list-avds Nexus_5X_API_23 //NG # emulator -avd Nexus_5X_API_23 -http-proxy https://myproxy.co.jp/proxy.pac //NG # emulator -avd Nexus_5X_API_23 -http-proxy myproxy.co.jp:8080
で色々と探した結果、other.xmlの設定をいじる
- win
- %USERPROFILE%/.AndroidStudioXXX/config/options/other.xml
- mac
- $HOME/Library/Preferences/AndroidStudioXXXX/options/other.xml ??
Macは、場所的に上の位置らしいんだけど、該当ファイルが見当たらず・・・??
例)
%USERPROFILE/AndroidStudio2.3/options/other.xml
- other.xml (以前書かれていた手法)
<option name="USE_HTTP_PROXY" value="true" /> <option name="USE_PROXY_PAC" value="true" />
- other.xml (現在)
# こっちはすでに存在しなかった・・・ <option name="USE_PROXY_PAC" value="true" /> <option name="USE_PAC_URL" value="true" /> <option name="PAC_URL" value="PACのURL" /> # こっちを書き換えた <option name="USE_HTTP_PROXY" value="true" /> <option name="PROXY_HOST" value="PROXYのURL" /> <option name="PROXY_PORT" value="80(port)" />
2017/10追記
emulator更新したら、また繋がらなくなってしまった。
ぐぐると下記の状態らしいんですけどウーン。まあ閉鎖環境のテストなんかしてないよねー
Android Studio エミュレータのネットワーク設定
Javadocのhttpアクセスを修正
- Setting>SDK 経由で、Documentation for Android SDK をダウンロードする
- sdk.table.xmlを開く。Windowsならばパスは、%HOMEPATH%.AndroidStudio2.3\config\options\jdk.table.xml
- http://developer.android.com/reference/ を 落としてきた位置のfile URLに変更する
例)
その他的なこと
大体プロクシを設定している所は、OAuth系のURLを禁止にしていたりするのでユーザー登録/認証 が必要なソフトは使えない感じになる
SourceTree
Winだと
- 1.7系を落としてきて使う
- 期限が来たら、下記の◎のファイルをバックアップしてアンインストール
- 下記のフォルダを消す
- インストールし直す
- 対象フォルダに下記の◎のファイルを上書きする
C:\Users\<username>\AppData\Local\Atlassian\SourceTree\ bookmarks.xml //◎ opentabs.xml //◎ userhosts //★ これは見つからなかった。でも問題なかったorz
まあレガシーな話ですけどね・・。
proxy設定している部署に、SourceTreeの認証だけ通すように申請するとか言われたけど、
まあAdobeとかのライセンスも、電話窓口で認証通してるらしいからなー
仕組み的に無理なんだとは思ってたりもしてる*5