Android Studio 2.2-preview4にしたらハマった話
- Android Studio 2.2-preview4 をIDEとしてまるっと差し替えた後のこと
- 通常のgradleビルドであればの回避策だと
- 最終的な解決解
- 途中経過的な暫定対処のお話(JRebelを使えるようにする為の)
Android Studio 2.2-preview4 をIDEとしてまるっと差し替えた後のこと
プロジェクトをそのまま開いたら変な挙動が起きた
- STUDIO_JDKが効かなくなった・・
$JAVA_HOME/bin/java -Xmx3g
=>
$STUDIO_HOME/jre/bin/java -Xmx1g
- Project Structure のProjectJDKの指定も反映されない・・
IDEの更新はいいのだが・・・
- android gradle pluginは未だ更新されないので 9-patchが壊れる状況は以前改善されず
- カスタムレイアウトのレイアウトのプレビューは全く出来ない=>表示されるようなった けど
- 依然として開くときにエラーが出るのがウザい。これどうにかならないのか?
通常のgradleビルドであればの回避策だと
やっとビルドできた Gradleを高速化するには最大メモリサイズを5120Mに設定してね的なの出てるけどそんなにメモリ余ってない
@kimihiro_n URL に設定するjvmは512mで問題無いです。その代わりtaskからfork実行されるDex処理を2gに指定すればOK(DexOptionのDSLで指定
@kimukou2628 ありがとうございます!そこで指定すればいいんですね
- gradle.propeties
# org.gradle.jvmargs=-Xms512m -Xmx512m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.jvmargs=-Xms512m -Xmx512m -XX:Flags=c:/opt/vm.option.txt -Dfile.encoding=UTF-8 org.gradle.daemon=true org.gradle.parallel=true org.gradle.configureondemand=true org.gradle.workers.max=4 // CPUコア数を指定 org.gradle.java.home=/opt/jdk8
- /opt/vm.option.txt (JDK8用)
MetaspaceSize=128m
MaxMetaspaceSize=128m
+UseG1GC
G1HeapRegionSize=1m
InitiatingHeapOccupancyPercent=15
- build.gradle
android { dexOptions { javaMaxHeapSize "2g" jumboMode = true } }
とかになり
- メインは512Mで節約しつつ、
- メモリ馬鹿食いのdex処理には2G(〜4G?)以上を払う
という指定の仕方も出来るんですけどね〜
そこら辺の話は以前下記で書いた
exception-think.hatenablog.com
最終的な解決解
.iml/.ideaファイルに互換性が無いようで、消してOpenし直してプロジェクト情報を再作成したら治った。。
途中経過的な暫定対処のお話(JRebelを使えるようにする為の)
- jrebel.properties にパラメータを設定して、設定値を上書きするイメージ
- Agent settings — JRebel 6.4.6 documentation らへんのお話
- 実際調べてみたパラメータは以下。自メモ情報
実際試したパラメータ情報
- serviceJavaMaxHeapSize=2g
その他の引数系
- projectJdk=XXX
- device=XXX
- USB/EMURATOR/実際のデバイスID
- 複数端末つないでいるときは下手に指定すると誤動作するみたい
通常は弄らなそうな奴
- licenseFile=XX
- logsDir=XXX
- gradleHomePath=XXX
ログ操作
- logLevel
- TRACE/DEBUG/INFO/WARN/ERROR/OFF
- gradleLogLevel
- 多分内部鯖(サービス)で実行しているgradle処理のログを出力してくれる
- TRACE/DEBUG/INFO/WARN/ERROR/OFF
agentLogLevel
- 多分内部鯖(サービス)で実行しているファイル転送等処理のログを出力してくれる
- TRACE/DEBUG/INFO/WARN/ERROR/OFF
enableAgentLogInConsole=true
- logcatに上記のログを出力してくれる
logcatLevel
- enableAgentLogInConsole=trueの時のログレベル
- ALL/DEFAULT/OFF
classDump=true
traceInnerClass=true
- 通常のログが凄く細かく出てくる。(classLoader的なログとかも)
- これ見てるとこういう動きしているんだーと実は勉強になったりも
clearLogOnStart
- 実行時にログをクリアする奴*5
keepWorkFile
- 実行時に生成される中間ファイルを残すか否かの設定かと
enableMetrics=true
- 起動時に分析html生成
OFFにする意味あまり意味ない系 *6
- runParallel=true
- enableReloading=true
- incrementalJavaC=true
多分用途的には、開発時のデバック切り分け用だと思う falseにすると、まともに動かないかなと
よくわからない系
- showTimeLine=true
- sendTimeLine=true
anableAnymoueTimeLine=true
forceAbBucket=1