LineageOS を Nexus 6 (shamu) に入れてみる

入れてみると「まあこんなもんか」とこれまでの Cyanogenmod と大差はない雰囲気.

それでも, ひさびさにカスタムROMまわりをいじるといろいろある.

「署名が有効でない」と怒られる

zip を落としてきて sideload しようとすると途中で止まる.

E: Zip signature verification failed: 1

あらかじめ, zip を SDカードに移動してから signatureチェックを外してインストールすると, 起動はするが, ずっと起動ロゴ(アニメーション)のままブートループ.

ここらのzip 署名はまわりは厳格になってる模様.

Our official builds will all be signed with a private key for authentication and signature permission control
This will not break, prevent or stop any ‘unofficial’ builds.

TWRPリカバリを最新版にするとうまく署名チェックを通る.

Download twrp-3.0.3-0-shamu.img
https://dl.twrp.me/shamu/twrp-3.0.3-0-shamu.img.html


$ fastboot flash recovery twrp.img
$ fastboot reboot

単独で最新版をダウンロードできるようになった platform-tools(fastbootなど) のURL

「cm to lineage migration build」の表示が画面に

しかし, 画面全体に↑のような文字が.

This build will be watermarked with an ugly banner to ensure that you don’t permanently run this EXPERIMENTAL release, and upgrade to a normal weekly after.

「experimental」では表示されるようです.「nightly」にするといける.

アプリパーミッションの許可

フルワイプでアプリ自体はそのまま残っているようですが, パーミッションの再許可が必要.

知らないうちにこんなにたくさん許可しているのですね.

通知バーを引き下げて順番に許可していきます.

これで元の使える状態になりました.

その他

最近は, GooglePlayストアで配布されているアプリからも, 最新版の更新通知やダウンロードできたりするようです.

たまには確認しておくがいいのかもしれません.

Lineage OS のオフィシャルビルド公開が今週末というので公式を見てきた

Update & Build Prep – Lineage OS – Lineage OS Android Distribution

The Open GApps Project

Download TWRP for .


android-apt が不要となった ButterKnife

Butter Knife - Android library statistics - AppBrain

バージョンを上げてみると落ちるのでなぜかな, と.

これまでAndroid開発でannotation processingを実行したい場合はhvisser/android-aptを利用するのが王道となっていましたが、Android Gradle plugin version 2.2から公式にサポートが開始されました。

android-apt becomes obsolete - Qiita

2016-10-04
From apt to annotationProcessor
As of the Android Gradle plugin version 2.2, all functionality that was previously provided by android-apt is now available in the Android plugin. This means that android-apt is officially obsolete 😉

hvisser / android-apt / wiki / Migration — Bitbucket

Reflection を利用していた ButterKnife も予定通りに,

実行時に全力でReflectionするButter Knifeと違い・・・(c.f. Butter KnifeもAnnotation Processingする方式に切り替えるっぽい? => Split the compiler and runtime into separate artifacts. by serj-lotutovici · Pull Request #323 · JakeWharton/butterknife).

Butter Knife、今までありがとう。 Data Binding、これからよろしく。 - Qiita

JakeWharton on Aug 1, 2015
This dependency can probably be removed

Split the compiler and runtime into separate artifacts. by serj-lotutovici · Pull Request #323 · JakeWharton/butterknife

ButterKnife 8.4.0 で, Gradle Plugin の annotation processor を利用するようになり, android-apt を利用が不要になっていました.


-Note: If you are using the new Jack compiler with version 2.2.0 or newer you do not need the
-'android-apt' plugin and can instead replace `apt` with `annotationProcessor` when declaring the
-compiler dependency.

Just use 'annotationProcessor' for instructions. · JakeWharton/butterknife@716e1f3

この android-apt 利用時の記述が無駄にあると, フィールドにバインドされずにリスナーセットなど操作時に「んおっ?」となります.

まとめ

Gradle Android plugin 2.2.+ で ButterKnife 8.4.+ の場合 android-apt は不要.

以下2行のみ. proguardの記述不要.


dependencies {
  compile 'com.jakewharton:butterknife:8.4.0'
  annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
}

Butter Knife

Annotation Processor のこれまで流れを知っておけばハマることもなかったのだろうと思います.

ButterKnife GitHubリポジトリ の issue などから調べようとすると, 謎の漢字での書き込みが激しく逆に混乱してしまいました.

Issues · JakeWharton/butterknife

com.android.support.* の dependencies のバージョンが揃わない件


guava が 21.0 で Error:Error converting bytecode to dex: Cause: Dex cannot parse version 52 byte code.

ライブラリ群を更新していると

あやしい Project Structure ダイアログを Experimental にしてライブラリ更新を正しく把握する

ビルドできない...


Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the 'java' gradle plugin in a library submodule add
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
to that submodule's build.gradle file.

gradleコンソールを眺めていると以下を発見.


com/google/common/io/InsecureRecursiveDeleteException references unknown class: java/nio/file/FileSystemException

下げます guava.


//compile 'com.google.guava:guava:21.0'
compile 'com.google.guava:guava:20.0'

いけた.

Java7向けのセットが残ってるんかな.

Issues · google/guava

java - Android: Dex cannot parse version 52 byte code - Stack Overflow