2017/09/29

IntelliJ IDEA "Cannot resolve symbol 'Xxxxx'" but builds modules successfully on a Gradle project


"Cannot resolve symbol 'Xxxxx'" on a Gradle project
  1. File > Invalidate Caches / Restart...
  2. Invalidate
  3. File > Close Project
  4. Remove the Gradle project from projects history
  5. Exit IntelliJ IDEA
  6. Remove "IntelliJ IDEA system" dir
    $ rm -rf ~/.IntelliJIdea201X.Y/system/
    
  7. Start IntelliJ IDEA again
  8. Import the Gradle project

2017/07/22

Warning:Using incompatible plugins for the annotation processing: android-apt. This may result in an unexpected behavior.


IntelliJ IDEA 2017.2

先日 IntelliJ IDEA を起動しましたところ JETBRAINS 様より Build IU-172.3317.76 なるバージョンがこの私めの元に降ってまいりました。天下の JETBRAINS 様の手による名 IDE の誉れ高き IntelliJ IDEA の最新版でございます。何も迷うことはございません。ただちにアップグレードさせて頂きました。

アップグレード完了後再び IntelliJ IDEA を起動致しまして、とある Andorid 開発ブロジェクトを開きましたところ、すかさず、 Gradle の Android Plugin をアップデートせよ、との天啓でございます。私、こちらも迷うことなくアップデート致しました。

するとトップレベルの build.gradle ファイルが以下のように変更されます。

buildscript {

    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'

また gradle/wrapper/gradle-wrapper.properties ファイルも変更されるのです。

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

早速ビルドでございます。

するとどうでしょう? Data Binding 周りが一切ビルドされずことごとくエラーとなるのです。

Warning:Using incompatible plugins for the annotation processing: android-apt. This may result in an unexpected behavior.

ビルドを開始致しますと、最初に出るこの Warning がどうにも怪しいのでございます。そのままグーグル先生にお問い合わせ致しますと以下の回答が返ってきます。

先人の教えに倣いましてアプリモジュールレベルの build.gradle から該当箇所を削除致します。

消えないのであります。 Annotation Processing の Warning が。

暗澹たる気持ちでアプリモジュールレベルの build.gradle に記述してある依存ライブラリを一つずつ削除し、ビルドしていきます。すると、

apply plugin: 'realm-android'

Realm を削除したところで件の Warning が消えるではありませんか。

なんのことはございません。使っていた Realm が古すぎたのでございます。トップレベルの build.gradle を以下のとおり変更致しまして Realm を 2.0 から 3.5 にアップデート致します。

classpath "io.realm:realm-gradle-plugin:3.5.0"

無事 Warning が消えエミュレータ上での実行まですんなりでございます。気持ちビルド自体も早くなったような気がし、心穏やかに開発を続けられそうでございます。ありがとうございます。

2016/09/13

#都バス で4時間ちょっとの #LuxAdventure




Via Lux Adventurer

すっかりプレーしなくなって一年ほど経つのでございますが、各種 SNS 方面で何やら新しいメダルの付与があるとの投稿をチラチラ目にすることがございまして、ソースを探しましたところ、


Visit 300 new unique portals during the month of September to earn
the Via Lux Adventurer medal. This medal will serve as a celebration of
the experiences you found along the way.
https://plus.google.com/+Ingress/posts/2ocJHk7LXBp

との事でございましたので久しぶにスキャナを起動致しました。


300 UPV ...

#INGRESS 【メダルアート】「西宮周遊ミッション ~西宮の虎になれ~」を完成させて以降ほぼ隠遁 Agent に堕しており、まったくプレーする気も起きない状況が続いておりました。都内在住ながら新たに 300 UPV を稼ぐのが非常に高いハードルに感じるほどでございます。

そんな奴が新たなメダルを欲するな、とお叱りを受けそうでございますが、ここは恥を忍んで頂けるものは頂戴しておこうと、重い腰をあげました。

しかし 300 UPV でございます。【メダルアート】を進めて稼ごうかしらと思ったのでございますが、情けないことにその気も起きないのでございます。如何にしてノルマを達成するか妙案思いつかないままタイムラインを眺めておりましたところ、知恵者は居るものでございます。


バスグレス

新しいプレースタイルではございません。以前より「稼げる」との言及を目にしておりましたが、実際に試したことはございませんでした。

スペシャルバージョンのメダルを目指して「バスグレス」に勤しむ Agent に倣い、今回は私も 300 UPV を達成してまいりました。以下、所要時間4時間ちょっと、池袋発大塚行きの周遊 #LuxAdventure の実績となります。


Agent Stats
  池86
池袋駅東口→渋谷駅
都06
渋谷駅東口→新橋駅
東22
東京駅丸の内北口→錦糸町駅南口
都02
錦糸町駅北口→大塚駅
TOTAL
explorer 79 75 81 70305
hacker 96 75 85 121377
trekker 1 1 1 14
AP 10,448 8,765 12,145 21,69753,055

※ 途中、新橋駅→東京駅の移動に山手線を使っております。(歩ける。。。)

2016/07/13

error: could not install *smartsocket* listener: Address already in use

adb command returns an error.
$ adb devices
(snip)
error: could not install *smartsocket* listener: Address already in use
(snip)
Change Genymotion settings below, to fix this error.

check 'Use custom Android SDK tools'

2016/06/16

#INGRESS 【メダルアート】「『暫』SHIBARAKU 東京江戸歌舞伎散歩」




Ingress Mission Map

途中 agent-stats.com に実績のアップロードをし忘れる

その上、一日にじっくり6ミッションのつもりで始めたはずが完全に初心を忘れまして、後半は12個毎の記録となっております。レポートとしては不完全なものになってしまいました。大変申し訳ございません。


Agent Stats

1->6 7->1213->1819->2425->3031->4243->54
explorer +91 +68 +123 - - +152 +193
pioneer +66 +77 +81 - - +78 +102
liberator +91 +125 +81 - - +87 +104
purifier +736 +463 +358 - - +325 +527
trekker +9 +7 +5 - - +9 +12
specops +6 +6 +6 - - +12(!) +12(!)
AP +222,355 +169,431 +141,942 - - +128,843 +194,011

これまでの完遂ミッションまとめ

Shibaraku Statue

2016/01/17

ngVisibleInView - angular.js custom directive

Github

  • https://github.com/ktakeda47/ngVisibleInView

ngVisibleInView

This is an Angular.js custom directive which emit an event when an element is visible.
(This custom directive depends on jquery-visible.)

Installation

  • $ bower install ngVisibleInView

Usage

  1. Load jquery-visible : <script src="/bower_components/df-visible/jquery.visible.min.js"></script>
  2. Load ngVisibleInView : <script src="/bower_components/ngVisibleInView/ng-visible-in-view.js"></script>
  3. Inject ngVisibleInView to your angular app : angular.module("yourApp", ["ngVisibleInView"]);
  4. Add visible-in-view attribute to target element. : <div visible-in-view>hoge</div>
  5. Listen onVisibleInView event in parent scope :
    // When a target element is visible, this function receive onVisibleInView event.
    $scope.$on("onVisibleInView", function(event, args) {
     // do something...
    });
    

Detail

  • See sample directory.

Demo

2015/12/01

How to completely remove / uninstall / purge kubuntu-desktop (KDE) from ubuntu

  1. Uninstall
    $ sudo aptitude purge kubuntu-desktop plasma-desktop
    
  2. Remove .kde
    $ rm -rf ~/.kde
    
  3. Remove lightdm config file
    $ rm -f /usr/share/lightdm/lightdm.conf.d/40-kde-plasma-kf5.conf
    
  4. Remove xsessions file
    $ rm -f /usr/share/xsessions/plasma.desktop
    
  5. Most important step, Uninstall sddm
    $ sudo aptitude purge sddm sddm-theme-breeze
    

2015/11/08

Install CyanogenMod on Motorola Moto G (XT1032)

  1. Unlock Moto G

    1. $ adb devices
      List of devices attached
      hogehoge device
      TAnnnnnnnnTH device
              

    2. $ adb -s TAnnnnnnnnTH reboot bootloader
              

    3. $ sudo fastboot devices
      [sudo] password for user_name:
      TAnnnnnnnnTH fastboot
              

    4. $ sudo fastboot oem get_unlock_data
      ...
      (bootloader) xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      (bootloader) xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      (bootloader) xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      (bootloader) xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      (bootloader) 0000000
      OKAY [  0.133s]
      finished. total time: 0.133s
              

    5. To get device unlock code, visit https://motorola-global-portal.custhelp.com/app/standalone/bootloader/unlock-your-device-a/action/auth and follow the instructions there.

    6. $ sudo fastboot oem unlock XXXXXXXXXXXXXXXXXXXXX
      ...
      (bootloader) Unlock code = XXXXXXXXXXXXXXXXXXXXX
      
      (bootloader) Unlock completed! Wait to reboot
      
      FAILED (status read failed (No such device))
      finished. total time: 27.954s
              
  2. Login to Moto G again
    1. Power on
    2. Login to device
    3. Enable developer mode
  3. Install recovery using fastboot
    1. Download recovery, https://dl.twrp.me/xt1032/twrp-2.8.6.0-xt1032.img

    2. $ adb -s TAnnnnnnnnTH reboot bootloader
              

    3. $ sudo fastboot flash recovery twrp-2.8.6.0-xt1032.img
      target reported max download size of 536870912 bytes
      sending 'recovery' (8480 KB)...
      OKAY [  0.297s]
      writing 'recovery'...
      OKAY [  0.466s]
      finished. total time: 0.763s
              
    4. Volum Down to select Recovery
    5. Then Volum Up
  4. Install CyanogenMod
    1. Download CyanogenMod package, http://download.cyanogenmod.org/?device=falcon
    2. Download Google Apps, https://wiki.cyanogenmod.org/w/Google_Apps
    3. (In Team Win Recovery, Create backup.)
    4. In Team Win Recovery, Select Wipe and Factory Reset.
    5. Select Install and move to '/sdcard' dir.
    6. Install CyanogenMod package.
    7. Install Google Apps.
    8. Select Reboot and System.
  5. Done.

2015/09/14

Genymotion Android エミュレータの hosts を書き換える

  1. Genymotion から hosts ファイルを引っ張ってくる
    $ adb -s 192.168.99.101:5555 pull /system/etc/hosts hosts
    
  2. hosts ファイルを書き換える
    $ vi hosts
    
  3. Genymotion の /system を書き込み可能でマウント
    $ adb -s 192.168.99.101:5555 remount
    
  4. Genymotion に書き換えた hosts ファイルを反映させる
    $ adb -s 192.168.99.101:5555 push hosts /system/etc