Rubyと筋肉とギターとわたし

筋トレが仕事です

android studioでkotlinのバージョンをあげたらエラー出るので困った

android studioを立ち上げた時にポップアップでkotlinのupdateが出てきたので、なにも気にせずupdateしました。

すると。。。

outdated kotlin runtime

f:id:rdwbocungelt5:20180316191702p:plain

なんか出た。

とりあえずUpdate Runtimeを押してみる。

f:id:rdwbocungelt5:20180316191822p:plain

はあ。。。

自動でkotlinバージョンを変えることはできないので手動でやらないといけないっぽいです。

まずどこを見たか

Gradle Script配下のbuild.gradle(Project:~~)を確認してみます。

f:id:rdwbocungelt5:20180316192026p:plain

kotlinのバージョンは1.1.51と。

実際どうなってんでしょうね。

f:id:rdwbocungelt5:20180316192403p:plain

Tools -> kotlin -> Configure Kotlin Plugin Updatesで見れました。

その後にChecks for updates nowをクリックしてちょっとすると出てきます。

...バージョン違いますね。

てなわけで修正

f:id:rdwbocungelt5:20180316192655p:plain

ext.kotlin_versionを今のバージョンに変えてあげます。

1.1.51から1.2.30へ修正。

すると上になんか出てきます。Sync Nowをクリック。

問題なければ成功します。以下がそれ。Grandle Consoleに出てきます。

f:id:rdwbocungelt5:20180316193131p:plain

おわり

とりあえずいけましたー

すすめるごとにエラー出るので頑張る

【雑記】ubuntuでスーファミやってみた

f:id:rdwbocungelt5:20180321112240p:plain

タイトル通りです。

せっかくの祝日、久しぶりにスーパーマリオRPGがやりたくなったのでやってみました。

本当はSnes9xっていうエミュレーターを入れたかったんですが、やり方がよくわからない早くゲームをしたかったのでZsnesというエミュレーターをいれました。

環境

  • ubuntu 16.04.1 (elementaryOS)

準備

至って簡単です。

以下のコマンドで必要なものが入ります。

$ sudo apt install zsnes

なんかいっぱい依存関係のパッケージが入りました。

ジョイパッドの設定

いつもお世話になっているのがこの子。

f:id:rdwbocungelt5:20180321101556j:plain

buffaloのスーファミコントローラーです。

iBUFFALO USBゲームパッド 8ボタン スーパーファミコン風 グレー BSGP801GY

専用のドライバを入れます。

$ sudo apt install joystick

あと、キー配置とか変更したいときにGUIで操作できるやつも入れちゃいます。

$ sudo apt install jstest-gtk

これでおk。

ちょっと起動してみる

Zsnesのインストールがうまくいっていればアイコンが表示されます。

f:id:rdwbocungelt5:20180321094910p:plain

開くとこんな感じ。

f:id:rdwbocungelt5:20180321095058p:plain

開いた瞬間若干ノイズが入りました。

やっぱり他の記事でも見たとおり音質はあまり良くないみたいですね〜。

なのでそれっぽいSDKをいれます。

$ sudo apt install libsdl1.2debian-oss

これで一度PC再起動します。

起動したら以下のコマンドをターミナルで打って起動するらしい。

$ zsnes -ad sdl

解像度&ジョイパッドの設定

※ここからはジョイパッドを接続した状態で進めていってください。Zsnesにジョイパッドが認識されていなければZsnesを再起動し、再度ジョイパッドを接続してから行ってください。

まず解像度の設定。「option」→「video」を選択します。

f:id:rdwbocungelt5:20180321103505p:plain

するとよくわからん画面が出てくる。

f:id:rdwbocungelt5:20180321103557p:plain

とりあえずSかRのやつを選んでたらよさ気。Fはフルスクリーンモードらしいのでちょっと不便かなと思ってWがついてるやつにしました。

これくらいかな。

f:id:rdwbocungelt5:20180321104106p:plain

次にジョイパッドの設定。「option」→「input」を選択。(その前に)

f:id:rdwbocungelt5:20180321104626p:plain

するとそれっぽい画面が出てきます。

f:id:rdwbocungelt5:20180321104754p:plain

手順通りいきます。upの枠を選択。するとupで使用するボタンを押せと出てくるはず。

f:id:rdwbocungelt5:20180321105053p:plain

言われたとおり、ジョイパッドの上十字キーを押下。

f:id:rdwbocungelt5:20180321105334p:plain

ジョイパッドの上十字キーが割り当てられました!(J03ってなってますね)

同じように全部割り当てます。

f:id:rdwbocungelt5:20180321105705p:plain

こんな感じですね。キーボードのTをターボに割り当ててます。面倒くさい戦闘のときとかに使います。

後で気づいたんですが、「set keys」を押したらupから順に割り当てていくことができますね。枠を選択するの面倒なので、こっちのほうが便利です。

saveの保存先指定

デフォルトがどこになっているかわからないですが、作っていきます。

おそらくですがホームディレクトリに.zsnesフォルダができているはずです。その配下にsaveフォルダを作成します。

$ cd ~/.zsnes

$ mkdir save

$ cd save

$ pwd
/home/user/.zsnes/save
## userのところは表示されたものに適宜置き換えてくださいね!!

次にZsnesで「option」→「path」を選択。

f:id:rdwbocungelt5:20180321110952p:plain

savesとかかれているところに先ほどのパスを入力(なぜか全角になるけど気にしないことにする)。

f:id:rdwbocungelt5:20180321111047p:plain

これで多分準備おk!!!!!

ゲームを起動!

あらゆる手段で用意しておいたROMファイルを読み込みます(ROMはもちろん吸い出してね)。

僕の場合は/home/document/snesrom配下にromファイルを入れるようにしました。好きなようにしていいと思います。

f:id:rdwbocungelt5:20180321112014p:plain

FFVが開きました!!!

f:id:rdwbocungelt5:20180321112240p:plain

マリオRPGも!!

終わりに

escボタンを押せば止まってメニューが出てきます。

f:id:rdwbocungelt5:20180321112404p:plain

快適なゲームライフをどうぞ。


参考

http://d.hatena.ne.jp/seTo/20091117/1258470925

http://www.geocities.co.jp/zsnes_123/zsneshelp/help.html

elementary OS(ubuntu)へandroid studioを入れてkotlinした

f:id:rdwbocungelt5:20180313113825p:plain

ちょっとハマった話は前の記事に

smot93516.hatenablog.jp

最初はReact Nativeで開発をする予定だったのですが、同僚がiOSをswiftでやると言い出したので、仕方なく僕がkotlinをやることになりました。

なので、環境構築します(最近環境構築しかしてないぞ)。

java & android studioのインストール

忌々しいJavaからインストールしていきます(Java好きの方々すみません)

前の記事でadd-apt-repositoryしてるのですが、その手順も入れておきます。

$ sudo add-apt-repository ppa:webupd8team/java

$ sudo apt update

$ sudo apt install oracle-java8-installer

oracle-java8-installerのインストールの際に赤い確認画面が出てきます。「了解」->「はい」を選択したらおkです。

javaが入ってるか確認

$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

問題なさそう。

どんどん必要なパッケージを入れていきます。

$ sudo apt install oracle-java8-set-default

これは入ってたみたい。

$ sudo apt install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
E: パッケージ lib32bz2-1.0 が見つかりません
E: 'lib32bz2-1.0' に一致するパッケージは見つかりませんでした
E: 正規表現 'lib32bz2-1.0' ではパッケージは見つかりませんでした

なんかエラーがでてるので、調べていろいろ試した結果、 lib32bz2-1.0に関しては以下のコマンドで行けた。

$ sudo dpkg --add-architecture i386
$ sudo apt update

$ sudo apt install libbz2-1.0:i386

lib32stdc++6がまだ入ってなかったので直接指定で入れます。

$ sudo apt install lib32stdc++6

多分準備完了

あとはAndroid Studio自体をインストールします。

Android Studio のインストール | Android Studio

SSDだけどまあまあ時間かかる。。。

公式ページに書いてあったのでそれに習って、/usr/localへ移動させます。

$ cd Downloads

$ unzip android-studio-ide-171.4443003-linux.zip

なんかめちゃくちゃ解凍された。てなわけで、移動させてあげる。

$ sudo mv android-studio /usr/local/

これでおk。

起動してみまーす

Android Studioを起動!

$ sudo /usr/local/android-studio/bin/studio.sh 

(java:12819): Gtk-WARNING **: module_path にはテーマ・エンジンがありません: "pixmap",

(java:12819): Gtk-WARNING **: module_path にはテーマ・エンジンがありません: "pixmap",

(java:12819): Gtk-WARNING **: module_path にはテーマ・エンジンがありません: "pixmap",

(java:12819): Gtk-WARNING **: module_path にはテーマ・エンジンがありません: "pixmap",
3 13, 2018 11:23:00 午前 java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.

f:id:rdwbocungelt5:20180313112427p:plain

なんか警告でてるけどスルーします。

とりあえず問題なさげ。

android studioの設定とか

よーわからんので適当に。

Standardで。

f:id:rdwbocungelt5:20180313113225p:plain

もちろんdarkで。

f:id:rdwbocungelt5:20180313113429p:plain

あとはどんどん次に行くだけ。

f:id:rdwbocungelt5:20180313113452p:plain

f:id:rdwbocungelt5:20180313113503p:plain

これがまあまあ長いので待機。TLパトロールでもして待ってください。

f:id:rdwbocungelt5:20180313113542p:plain

おわったのでfinishを押す。と同時にwelcome画面が出てきます。

f:id:rdwbocungelt5:20180313113736p:plain

f:id:rdwbocungelt5:20180313113825p:plain

kotlin pluginをインストール

JetBrains社がプラグインを提供しているらしいのでそれを入れる。

右下のConfigure => Pluginsを選択。

f:id:rdwbocungelt5:20180313115202p:plain

「Install JetBrains plugin ...」を押下後、kotlinで検索。

f:id:rdwbocungelt5:20180313115526p:plain

なんか入ってるっぽいので、updateしておきます。

んでRestart Android Studioを押下。

f:id:rdwbocungelt5:20180313115732p:plain

f:id:rdwbocungelt5:20180313120002p:plain

これで一旦kotlinの環境構築が終了。

残りはまたこんど

projectを作ってJavaのコードをkotlinに変換するのは今度にします。

とりあえずここまでで終わりー。

おつでした。

elementaryOSにbluetoothドライバが入ってなかったのでいれようとした

この前記事にあげた新しいPC(HPのspectre)のLinuxにはbluetoothドライバが入っていたのですが、ThinkPadの方を見てみたら入ってなかったので入れる試みをしました\(^o^)/

PCちゃん

パッケージのインストール

必要なパッケージを指定して入れたいですが、めんどくさい

なのでとりあえず必要なもんをaptします。

$ sudo apt install bluez
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
bluez はすでに最新バージョン (5.37-0ubuntu5.1) です。
bluez は手動でインストールしたと設定されました。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

は?

入ってる臭い。アイコン出てないんだけど!

とりあえずbluemanを入れてみる。

$ sudo apt install blueman
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  blueman
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
1,673 kB のアーカイブを取得する必要があります。
この操作後に追加で 4,948 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 blueman amd64 2.0.4-1ubuntu2 [1,673 kB]
1,673 kB を 1秒 で取得しました (1,656 kB/s)
以前に未選択のパッケージ blueman を選択しています。
(データベースを読み込んでいます ... 現在 229939 個のファイルとディレクトリがインストールされています。)
.../blueman_2.0.4-1ubuntu2_amd64.deb を展開する準備をしています ...
blueman (2.0.4-1ubuntu2) を展開しています...
dbus (1.10.6-1ubuntu3.3) のトリガを処理しています ...
bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) のトリガを処理しています ...
Rebuilding /usr/share/applications/bamf-2.index...
gnome-menus (3.13.3-6ubuntu3.1) のトリガを処理しています ...
desktop-file-utils (0.22-1ubuntu5.1+elementary2~ubuntu0.4.1) のトリガを処理しています ...
mime-support (3.59ubuntu1) のトリガを処理しています ...
hicolor-icon-theme (0.17-1~elementary0.4.1) のトリガを処理しています ...
man-db (2.7.5-1) のトリガを処理しています ...
libglib2.0-0:amd64 (2.48.2-0ubuntu1+elementary0.4.1) のトリガを処理しています ...
blueman (2.0.4-1ubuntu2) を設定しています ...
dbus (1.10.6-1ubuntu3.3) のトリガを処理しています ...

なるほど!君が入ってなかったのか

じゃあ、blueman-manager起動しよう。。。。

f:id:rdwbocungelt5:20180312100208p:plain

あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ

いみふ。

デーモン起動しなきゃいけないのかなとおもったので起動してみる。一緒にPC起動時にデーモンが自動に起動するよう設定も入れる。

$ sudo systemctl start bluetooth.service

$ sudo systemctl enable bluetooth.service
Synchronizing state of bluetooth.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable bluetooth

$ sudo blueman-manager

......だめだ。同じエラーが出る。

bluezのパッケージを全部指定して入れる。

sudo apt-get install bluez bluez-alsa bluez-audio bluez-btsco bluez-compat bluez-cups bluez-dbg bluez-gstreamer bluez-hcidump bluez-pcmcia-support bluez-tools bluez-utils python-bluez bluewho indicator-bluetooth libbluetooth-dev libgnome-bluetooth11 libbluetooth3 python-gobject python-dbus

んーうまくインストールできない。

blueman-managerがうまくいかないので、bluetoothctlを使う。

$ bluetoothctl
#

対話モードになったけど何も入力できん。詰んでるわこれw

もしやと思って、左上のアプリケーションからbluetoothを検索してみた。

ある!!!!

起動してみた!

f:id:rdwbocungelt5:20180312101900p:plain

ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ

だめっすねこれ。

衝撃の事実

最後にbluetoothイヤホンを接続モードにして以下を試しました。

$ sudo hcitool scan

or

$ sudo bluetoothctl

上ではDevice is not available: No such device。下は安定の対話モードだけど対話する気がない。

これはこれはと思ってThinkPad x230がそもそもbluetooth使えるのか調べてみたら...

ない!!!!!!!!!!!!!

今までの苦労は何だったんだ。今度bluetoothモジュール取り付けてやるからな。

OWARI

kotlinでしょっぱなから詰まった話

現在「kotlinスタートブック」の15章をやっています。

いきなりラムダ式やnull安全やらの内容をやると意味がわからなくなるので、一旦スルーで基本文法だけ抑えて一気にandroid開発の章を見ていましたが、しょっぱなから詰まりました。

error: unresolved reference: model

なんかしらんけどpackage practice.qiitaclient.model.*でエラーをでてるっぽい。

直接ファイル指定(package practice.qiitaclient.model.User)しても同じ結果、イミフ。

同じように詰まっている人たちがいた

qiita.com

teratail.com

teratail.com

すべて試したところ、最後のっぽい。

けどREPLを再起動しても、同じエラーが出る。。。

なんの解決にもなってないけど、一旦全部保存して、同期しなおしてからandroid studioを再起動。

いけたze

f:id:rdwbocungelt5:20180316164510p:plain

参考書が書かれたのは二年前なので同じ内容は出てないけど、一旦問題なくうごいた。

こんなエラーは出ないようになってほしいのぉ。。。

今後同じようなエラーが出てちゃんと調査したら関連記事作成しまっす。

後日談

他のファイルを作成して同じようなことをしてもエラーが発生する。

まじでイミフ。

調査が出来次第、また記事にあげます。。。。

elementaryOSでトラックパッドの検出範囲を変えた話

winで最初作業していた時は全く無かったのですが、Linuxデュアルブートしメインで使い始めたらめちゃくちゃ気になり始めたので修正しました。

タイピングをするたびにマウスが動いて仕方がなかった。。。

おかげでとっても快適です!

PCスペ(前も書いたけど)

  • HP spectre x360

まずは手のひら検出

ここを参考にしました。

Synaptics タッチパッド - ArchWiki

結果的には全く効力がなかったですw

これは諦めました。

次に範囲の設定

まずはトラックパッドの範囲を調べます。

$ grep range /var/log/Xorg.0.log
[     6.128] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1302 - 5640 (res 37)
[     6.128] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1116 - 4740 (res 64)
[     6.128] (--) synaptics: SynPS/2 Synaptics TouchPad: pressure range 0 - 255
[     6.128] (--) synaptics: SynPS/2 Synaptics TouchPad: finger width range 0 - 15

これでトラックパッドのx座標とy座標がわかります。

今回は手の平があたるのが問題だったので、x座標のみいじりました。

座標の見方はx座標の一番左が1302、一番右が5640って感じみたい。

ここを参考にさせていただきました。

qiita.com

設定を /etc/X11/xorg.conf.d/50-synaptics.conf に記述すればいいらしい。ない場合は /usr/share/X11/xorg.conf.d/50-synaptics.conf をコピーして作成せよ、と。

…僕のPCそもそも/usr/share/X11/xorg.conf.d/50-synaptics.confがないんですけどw

ってことで直接 /etc/X11/xorg.conf.d/50-synaptics.conf だけ作成して、以前作成したThinkPadのやつを参考に作りました。

それが以下。

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"

        Option "AreaLeftEdge" "2000"
        Option "AreaRightEdge" "5000"
EndSection

x軸の1302~2000, 5000~5640の範囲を無効化するって意味です。

おわり

トラックパッドが動かなくなっただけで超快適になりました!

座標の範囲の見方が全然わからなくて設定で迷ってましたが、やっといけた。

では。

elementary OSにandroid studioを入れようとしたときにadd-apt-repositoryコマンドがないと言われた

業務でkotlinを使うことになり、最初にjavaを入れようとしたら速攻詰まりました。

add-apt-repositoryコマンドがない!!!!!!!!

ubuntu環境への環境構築の記事等でよく見ていたので知ってはいたんですけど、標準装備でないとは想定外でした。

パッケージの検索

以下からadd-apt-repositoryを検索

Ubuntu – Ubuntu パッケージ検索

すると結果がこれ

Ubuntu – Package Contents Search Results -- add-apt-repository

software-properties-commonの中にあるっぽい。

$ sudo apt install software-properties-common

$ sudo add-apt-repository ppa:webupd8team/java

他の方法

apt-fileを使う方法

$ sudo apt install apt-file
$ sudo apt-file update
$ sudo apt-file search add-apt-repository
software-properties-common: /usr/bin/add-apt-repository
software-properties-common: /usr/share/man/man1/add-apt-repository.1.gz

software-properties-commonにあることがわかります

おわり

うまく行ったZE。

elementaryOSは最小構成とはいえ、add-apt-repositoryくらい入れておいて欲しいっすね。