2018年10月22日月曜日

Gradle sync failed

 Android Studio 3.2 にしたら、「gradleを4.6にしなさい」とおっしゃるので従ったらsyncがうまく行かなくなった。BuildウィンドウにはWarningだけで原因不明。いろいろ調べたがわからないのでgradle 4.4をずっと使っていた。
 Android Studio 3.2.1になった記念にもう一度調べてみるかと思って、ふと、Buildウィンドウの左側のアイコン「Toggle View」[|=/ab](こんなやつ)を押したら表示が切り替わり、

The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.

(ManifestファイルにminSdkVersion バージョンを書かないでね。ボケナス!)

ただこれだけのために何時間使った…自分のバカさ加減に父ちゃん情けなくて涙出てきた。

やっと使えるようになったgradle 4.6は、何かこう、速くなったような気がしないでもない。気のせいかな。

2018年5月4日金曜日

DexArchiveMergerExceptionでコンパイルが通らなくなった

ある日の昼食後、コンパイルしてみるとDexArchiveMergerExceptionが出てコンパイルが通らない。午前中は問題なく、何もしてないのに…こういうのやめてくれ。結構ハマったが何とか解決。

firebase系の各ライブラリのバージョンが独立になったらしい。
https://firebase.google.com/support/release-notes/android

使用しているライブラリを最新にしたらなおった。

2018年4月25日水曜日

DexArchiveBuilderExceptionとか

Android Studioを3.1にしたらコンパイルが通らなくなった。gladle 4.4, Android Plugin for Gradle 3.1で以下のエラー。

Java compiler:
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\XXXXX
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
Caused by: com.android.tools.r8.utils.AbortException

Android issues:
Invoke-customs are only supported starting with Android O (--min-api 26)
Message{kind=ERROR, text=Invoke-customs are only supported starting with Android O (--min-api 26), sources=[Unknown source file], tool name=Optional.of(D8)}

Android Plugin for Gradleを3.0.1に戻すとコンパイルが通るのでしばらくごまかしていたのだが、Android Studioを3.1.2にした折にもう一度調べた。

以下をapp/build.gradleに加えることによって解決(gladle 4.4, Android Plugin for Gradle 3.1.2)。意味はよく分かりませんw

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

2017年4月26日水曜日

HP互換ACアダプター

 コンパイル中にふとタスクマネージャーを見ると、負荷とCPUクロックが反比例している!?

 アイドル時100%近いのは電源オプションの「高パフォーマンス」設定から来ているので問題ない。問題は負荷をかけた時にクロックが下がっている部分。逆だろ!何か最近ノートPCに気合いが足りない感じがしていたが…こいつは…

 いろいろ調べた結果、犯人はACアダプター!?なにをバカな、、、と思ったが、そうだ、最近出先でACアダプターを忘れたので互換品を買ってそのまま使っていたのだった。製品仕様的には全く問題ないものだが、最近のPCは互換品をチェックしてるらしい。

 何か回避する方法は無いかなとSmrtAdptr.exeというのを見つけてリネームしたりしてみたが、そんな簡単な問題ではないみたいなので、大人しく元のアダプターに戻した。

 互換アダプター使っている人は、PCがダラけてないか見てみたほうがいいかも。

※純正アダプターでも一度同じ症状が出たが端子抜き差しでなおった。

2017年4月20日木曜日

選択アイテム0個でもActionModeを抜けたくない


CHOICE_MODE_MULTIPLE_MODALで、選択アイテム0個でもActionModeを抜けない方法(以下で質問者が自己レスしてる方法)。こんな方法しかないのかよって感じだが、とりあえず動作はする。

How to prevent close action mode when no item is selected

正攻法としては、これもCHOICE_MODE_MULTIPLEを使うしか無いのかな。

長押し以外でActionModeに入る

ListViewのCHOICE_MODE_MULTIPLE_MODALで、長押し以外でActionModeに入りたい。簡単にできそうなもんだが見つからない。一つのアイテムが選択状態になってもいいなら、以下でActionModeに入ることができる。

    ListView.setItemChecked(selectedItemPosition, true);

今回は、選択アイテム0の状態でActionModeに入りたかったので、結局Activity.startActionMode()とCHOICE_MODE_MULTIPLEを使うことにした。

2017年3月31日金曜日

Chromeの翻訳ボタンが機能しない

 アドレスバーの右横にあるやつ。押せるが全然翻訳されない。設定も初期化した、再インストールもした、レジストリもクリアした。でも全然ダメ。隣のマシンでは普通に翻訳できてるのに。
 その後、翻訳APIが403を返してることがわかった。APIパラメータのkeyがnoになっとる。結局、GOOGLE_API_KEYという環境変数が悪さをしていたことが判明。こいつがnoになってた。何かのソフトをインストールした時に入ったっぽい。この環境変数を消去して解決した。本当のkeyはChromeが持ってるからOK。