LoginSignup
5
5

More than 5 years have passed since last update.

Lollipopへのバージョン更新対応

Last updated at Posted at 2014-11-27

Lollopopが出て、結構時間が経った。
最近、Google Play ConsoleのExceptionログがまずいことになりつつあったので、いい加減対応することにした。

その時のメモ

前提条件

Android Studio 0.8.14
Mac OS X 10.9.5
(Mac OS X 10.10でも確認済み)

SDKのバージョンをあげる

build.gradleに記載されている、各種SDKのバージョンをあげた。

build.gradle
android {
    compileSdkVersion 21
    buildToolVersion "21.0.0"
...
}

supportライブラリなどを利用しているのであれば、そちらも。

JDKのバージョンをあげる。

LollipopからJDK7にあがった。
Yosemiteならすでにあげているから問題ないが、Yosemiteを回避している人はJDK7にあげる必要がある。
Oracleからjdk-7u72-macosx-x64.dmgをダウンロードしてぽちぽち押してインストールした。

JDKロケーションを変更する

Android StudioのFile > Project Structure > JDK Locationで変更する。

/Library/Java/Home

JDK6は/System配下にあったが、変わってた。

Objectにprivateなtransient変数が追加された

Reflectionを使って、全メンバー変数からQueryを作成するような処理が存在していたのだけど、そこで落ちた。
よーくログを見てみると、shadow$_klass_, *shadow$_monitor_なんてのが含まれた変なQueryになってた。

原因は以下の変数がObjectクラスに追加されたこと。

Object.java
private transient Class<?> shadow$_klass_;
private transient int shadow$_monitor_;

transient変数を無視することを完全に忘れてた!

こんな感じで案外すんなりいけた。
主な機能が動いたってだけで、細かいviewが動いてなかったりしてるかもしれないけど、一旦Exceptionログはこれで落ち着きました。
(結局最後のやつだけしか活躍してないけどね!)

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5