古いプロジェクトをビルドする上でハマったメモ

はじめに

偶に古いADTプロジェクトをAS対応すると、単に移行するだけなのに結構ハマることがあるのでメモしておく

多分最新の build-toolsとかに対応していない google play services とか使うからなんでしょうけどね・・

動作環境

  • macOS Sierra
  • 16G
  • HDDタイプのiMac
  • AS 3.0-Canary7 (7/25の時点で Canary8にupdate)
  • gradle plugin 2.3.3
  • gradle runtime-4.1-m1-bin.zip

レイアウトが崩れる

これ LinerLayoutの

  • match_content/wrap_content 指定が効かない
  • android.jarのバージョンにより直った?

みたいな話のやつ。ネットで言及例であげられていたのはRecyclerViewででしたね。。

今回の場合は targetSdkVersion 18 でなんとかなりました。

google analytics を使っているプロジェクト

現在 GAって新規受付は終了していて、基本的にFirebaseに飛ばされます。

ただFirebaseだと無料枠の制限が凄く厳しい。

でGAのアカウントをもっている人であれば、そちらの機能を使いたいわけです。

で、現在 services.jsonが取得できるFirebaseのサイトだと、

GAの global_tracker.xml の自動生成ができない記述だから

手動で services.jsonを直す必要があるという話

  • 変更前(FA標準)
analytics_service": {
      "status": 1
}, 
  • 変更後
analytics_service": {
      "status": 2,
       "analytics_property": {
             "tracking_id": "UA-XXXXXX"
       } 
}, 

TLメモ(assetsの読込速度)

確かに SAF使うととても遅いんですよね・・・。うーん。


AS 3.0 Canary8 挙動メモ

アップデートでハマった備忘

//誤動作キャッシュとして認識していて一旦消した
$HOME/.android/build-cache //◎
$HOME/Library/Application Support/AndroidStudio3.0 Preview //◎

//認識外だったキャッシュ
$HOME/Library/Caches/AndroidStudio3.0 Preview //★

確かにあたらめて調べてみたら、下記のページに有りましたわ・・・

まあ完全アンインストールするときって AppCleaner辺り使ってるからなー

#$HOME/Library/Preferences/ の検索

ls -la ~/Library/Preferences/ | grep -i android

#$HOME/Library/Caches/ の検索

ls -la ~/Library/Caches/ | grep -i android

#$HOME/Library/Application Support/ の検索

ls -la ~/Library/Application\ Support/ | grep -i android

#$HOME/Library/Logs/ の検索

ls -la ~/Library/Logs/ | grep -i android

またいつもの如く、アップデータ失敗したと思って

  • update後、IDEの表示がIDEA CEの標準ぽい画面に
    • =>プロジェクトを開くと、ASのプロジェクト構成を認識しない
  • ASのdmgをまるっと落として上書きして確認
    • =>変化なし

で、plugin画面で、何時もついてるはずのAndroid系のPluginに全てチェックを付けた後、

  • ◎のフォルダをリネム
  • IDEをInvalidate Restart 再起動したり
  • OS自体を再起動したり

したら、何時ものAS画面に戻りました・・・。

Welcome画面の見た目の表示変更って、 android suppot plugin で行ってるのね・・・

動かしている体感

結構辛い。補完が全然効かない・・。

これjpsで見てたら、gradle deamonがすごい勢いで量産されていて

がうまく行ってないんだろうなーという感じ。

deamon1個で jvmのメモリ設定がボコボコ確保されるので、そりゃーメモリなくなるわな・・・

ついでにJAVA_8でビルドしてると結構ビルド失敗するようなんだけど大丈夫なん?*1

*1:勿論この場合のbuildテストは、InstantApp用のAS3.0用プロジェクトでテストしてる