以下の内容はhttps://gfx.hatenadiary.org/entry/20140419/1397862378より取得しました。


android.compileOptions.targetCompatibility は sourceCompatibility と一致していなければいけない

(追記: 最初targetCompatibilityを1.6, sourceCompatibilityを1.7にするのがベストだと考えたが、ビルドできなかったので修正)

Android Studio (as of 0.5.5) で新規プロジェクト作成のとき、Java7を選ぶことができる。しかし、Java7に対応しているのは Android 4.4からなので、minSdkVersionが 19 でないかぎりJava7のフル機能を使えるわけではない*1。プロジェクト作成直後は以下の様な build.gradle が作成されるが、Java7で追加されたクラスライブラリの新機能は使えない。

//app/build.gradle
android {
 
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

}

Java7の新しいクラスライブラリをうっかり使って実行時例外になるのも困るので、targetCompatibilityは1.6にしておくのがよさそうだ。そうしておくと、 Objects.equals() などを使おうとすると正しくコンパイルエラーになる。

android {
 
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_6
    }

}

*1:Android 4.4でもフル機能を使えるわけではないようだけど。




以上の内容はhttps://gfx.hatenadiary.org/entry/20140419/1397862378より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14