odeの開発メモ日記

プログラマーやってます。今までの道のり ポケコンbasic→C(DirectX5 ネットやろうぜ)→Perl(ちょろっと)→Java→C#→Ruby→Android(Java)

android4アプリを6(marshmallow)対応に

いろいろ調べたことのメモ書きです。

snackbar等のandroid5で導入された部品を使うにはいろいろ最新化が必要

snackbar等のandroid5で導入された使うには
com.android.support:designの導入が必要。

関連していろいろ最新化しないといけない。

play-serviceを最新化

com.google.android.gms:play-serviceを最新にしたら
Unable to execute dex: method ID not in [0, 0xffff]: 65536
とでたのでググったら下記のサイトが見つかったけど、これに従っても解決できずでした。

この場合は下記のサイトが正解。

app compat対応

app compatの対応が必要なのでandroid support library v7対応が必要。

v7はv4を拡張してるっぽいので。あまり詳しい文献は見つけられずだけどv4(1.6)サポートは必要ないだろうから気にしない。
といっても一部はv4のままのクラスを使うっぽい。両方使っていくスタイルっぽい。

app compat関連で修正した箇所は下記

  • FragmentActivity → AppCompatActivityにした。
    • ActionBarActivityへの移行と書いてあるがこれも古くて今はAppCompatActivityを使う。
  • ThemeをTheme.AppCompatにした。
  • ActionBarDrawerToggle を android.support.v7.app のものに変える
  • ロゴがでない。

actionBar.setLogo(R.drawable.ic_launcher)
をやめて
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setIcon(R.drawable.ic_launcher);
を呼ぶ。

最後に

時代が変わっていくのついてくの大変。