hunachi’s diary

Android studio でお勉強してます。

一般人なら絶対に踏まないbugやerror[3]

私,ふなち!何処にでもいる18歳の高校3年生!

ダダダダダダダダ...(Buildが走っている)

うわぁぁ!

 

Error:error: resource android:attr/accessibilityFocusedDrawable is private.

...略...

failed linking file resources.

 

 

という事で上記のようなerrorに引っかかりました.

 

xml上のerror探したんですけど簡単には見つかりませんでした.

ググった.

stackoverflow.com

stackoverflow.com

考えられる原因は色々存在する様だ...

でよく見たら私のerrorは上記に記しているのだけじゃなくてresourceに原因があるって書いてあった.

Execution failed for task ':app:processDebugResources'.

で探してたら,errorの源を見つけた.

android:background="?android:attr/accessibilityFocusedDrawable¥ 

これのresourceを変えたら完治した.

 

drowable:android(?)に入っているresourceを使ったらこうなった.

d.hatena.ne.jp

上記事にある様にprivateなresourceがあるので気をつけるべきふなね(((o(*゚▽゚*)o)))

 

あと ”ポプテピピック” 見よう!

Google Home で遊んでみた(((o(*゚▽゚*)o)))

先日,プロラボ部で「お正月ハッカソン2018」が開催されました.

参加しました.楽しかったです.

 

クリスマスに,お父さんから google home mini を買っていただいたのもあり,

私は,5日くらいかけて「初夢Assistant」というものを作りました.

大雑把な内容はこちらです.

www.slideshare.net

 

簡単に文章で説明すると,①google home miniと一緒に「一富士二鷹三茄子」と言ったり,②夜中のレム睡眠時(1.5時間ごと)にgoogle home miniに隣で「一富士二鷹三茄子」と呟いてもらうことで,私たちの「良い初夢が見られる」ようになる確率が上がるというものです.

 

まず,①の機能の実装?方法はこんな感じです.

  1. Dialogflow  を使って「えいえい!」ってします.
  2. deviceでテストを走らせると,設定した通りに私の言葉に反応してくれます.
  3. やったー(((o(*゚▽゚*)o)))

もっと詳しく知りたいという人向けにもう少し詳しく書きます.

  1. Sign in - Google Accounts  で今から作業するためのプロジェクトを作成します.

  2. その後で Dialogflow を今作ったプロジェクトを開いて作業します.

  3. Intentってとこにactionを指定していきます.

    f:id:hanahanahunachi:20180118002618p:plain

    f:id:hanahanahunachi:20180118002635p:plain

  4. こんな感じで9割GUIでできるので,プログラミングできなくてもできちゃいます.
  5. さあ,出来上がったら,実際に動かして見ます.Itegrationのgoogle assistantって書いてあるところをポチッとします.すると下のスクリーンショット の様なダイアログが開くので...

    f:id:hanahanahunachi:20180118002704p:plain

  6. 右下の  TEST  ってとこ押すとテストができるところに移動します.

    f:id:hanahanahunachi:20180118002854p:plain

  7. を押して,「プロジェクト名 につないで」というと先ほど設定した通りにgoogle homeくんが応答してくれるようになります.(google home 君と自分の使うgoogle accountは紐ずけて置いてください.)

 

次に②の機能の実装方法はこんな感じです.

成功した方法

  1. google home notifer を Node.js の入った mac に installします. 
  2. 面倒な場合は

    GitHub - noelportugal/google-home-notifier: Send notifications to Google Home をcloneするといいかもしれません.

  3. 初期の設定については上のリポジトリを見てくださいふな.
  4. 次に,example.js とかと同じディレクトリに main.jsを作って下記を書きます.

    main.js for google home notifer in first-dream .初めてjavaScriptを書いたので多少の酷さは許して貰いたいです(_ _).。o○

  5. ~google-home-notifer $ node main.js とコマンドを叩きます.
  6. こういう感じになったら成功です.

  7. 次に Discover IFTTT and Applets - IFTTT  を使います.

  8. IFTTT で google assistant -> webhock (さっき立てたserverのurl)の trigget をセットします.
  9. google home で実際に試して見て動いたら成功です.

ごめんなさい.あまりにも大雑把な説明なので,本気で作りたいと思った方は,詳しくは下記の参考文献を参考にしてください.

 

実は最初は,iftttを使わず,firebaseのfunctionを使ってnode.js serverの方にrequestを投げようと試行錯誤しましたが,できませんでした.functionを使わないで,requestを投げるコードはかけたのですが,functionを使うと失敗してしまいました....今度時間を見つけ次第何故なのかちゃんと調べていきたいです。゚(゚´ω`゚)゚。

 

感想

今回,この作品を作った上で一番嬉しかったのはお母さんとお父さんに「すごいね!」と言ってもらえたことです.

私は普段,規模の小さいAndroid Appを作ったりしてるのですが,それらに関してはあまり興味を示してもらえてないので,開発期間は1週間未満だし簡単なことしかしてないとはいえ今回興味を示して貰えて嬉しかったです.(涙出そう)

 

読んでくださりありがとうございました(● ˃̶͈̀ロ˂̶͈́)੭ꠥ⁾⁾

 

*参考文献*

初めて挑戦した分野&言語でしたがこれらの記事のおかげでどうにかなりました.

ありがとうございます(((o(*゚▽゚*)o)))♡♡

qiita.com

qiita.com

qiita.com

 

設計について考えてみる.(さぼった-あとがき-)

実はこの記事は

Prolab Advent Calendar 2017 - Adventar

の22日目の記事の一部として書かれています.

 

先日までせっせとコードを書き直してた上記の後者のほうのリポジトリのコードについてちょっと話させてください.

 

github.com

 

オブジェクト指向を心掛けました.(ん?)

しかし,きちんとした設計を学んでないので自己流意味不明コードが出来上がりました.

そこで私は設計の観点からこのコードのコードレビューしてみることにしました.

こちらを参考にしました

tech.recruit-mp.co.jp

 

 

ついでに私がそれぞれの部分で実装した内容について書いていくので,振り分け,実装の仕方についての『突っ込みどころ』を探しながら読んでいただければ嬉しいです.

 

 

まず

presentation層(濃いオレンジ),domain層(薄いオレンジ), infra層(青)?

に分類していきました.

f:id:hanahanahunachi:20171226122259p:plain

 

providerとviewModelの役割分担に不安しかないので何をさせていたか軽く説明します.

 

f:id:hanahanahunachi:20171226150754p:plain

f:id:hanahanahunachi:20171226122455p:plain

(❌Dao→⭕️DAO)

 特に音楽の再生などをさせる部分というのは,presentation層とdomain層のどちらに割り当てられるのかがいまいちわかりませんでした.

 

※このあと他にも色々書こうと思ったのですが自分が自分の思ってた以上に設計のことを理解していなかったため書けなくなってしまいました(悲しいごめんなさい)

 

 

改善点

  • DIを使っていないので柔軟性がない&テストがしずらい(これ以上大きくする予定のないアプリだったのでまだマシなのかもしれませんが)
  • (皆さんからのアドバイス等を参考にし,随時追加していきたいです)

自分的に良かった点

  •  昔よりActivityがすっきりした.

 

 

 

 

 

 

 

さぼった

この記事は

Prolab Advent Calendar 2017 - Adventar

の22日目の記事として書かれています(5日目のふなちの記事はこちら

 

 

前日はOBのzero先輩でした.

hxs.hateblo.jp

MAについて知ることができる面白い記事でした!

ハッカソンはいいぞ(`・ω・´) 

せっかくなので,今年のLT会でのふなちの資料も...時間があったらどうぞ.

www.slideshare.net

 

でついでにこれもどうぞ.

www.slideshare.net

 

では,本編スタートです.

 

 

Q.1年間ぐーたらしてるとどれくらい人は成長するのか?

 

A.リンゴ一個分成長した.

 

ここからはふなちの成長記🐰なので技術記事以外読みたくない人は

設計について考えてみる.(さぼった-あとがき-) - hanahanahunachi’s diary

をどうぞ。

 

1.目標と現実のギャップ

ちなみに今年の初めに言っていた目標はこれです.

2017年版今年の抱負 - 堕人間の備忘録~

~結果発表~

△悲しいことがあってもネガティブ発言をしません -> バリバリ元気になった.
×先輩を見習います
×自分の好きなことを見つけ、それを精進させます
×TOEIC600目指します
×JMO予選参加
×溜まっている本を読みます
×線形代数微分のプロになる
〇コンテストでプログラマとして活躍したい -> hackU, pck, superson予選, kosenハッカソンくらい?
△Javaともう一言語以上書けるようになる -> Kotlin?
〇コスプレがしたいです -> メイド服,セーラー服とかが主.

 

2.成長したのかな...

  • プログラミング関係

github.com

(そもそも継承を理解していない,FatActivity仕様.)

 ↓

github.com

 

Androidしか今年触ってないのにこんだけしか成長がない・・・.

 

 

あと色々なbugと遭遇しました.

一般人なら絶対に踏まないbugやerror[1] - hanahanahunachi’s diary

kotlin not configuredの解決方法 - hanahanahunachi’s diary

一般人なら絶対に踏まないbugやerror[2] - hanahanahunachi’s diary

 その他主な今年遭遇したbug

gson,retrofitで@Path - hanahanahunachi’s diary

databindingのerrorで毎回詰まってる話 - hanahanahunachi’s diary

Unable to execute dex: method ID not in [0, 0xffff]: 65536 - hanahanahunachi’s diary

など.

 

  • その他

TOIEC 500 (😢)

解析入門(小平先生) の関数のとこまで.

線形代数 第6章まで(商空間とか)+固有値固有ベクトルあたり少し.

整数論? うぃんじー先輩から借りた本の問題の部分のみ

 

 

  • 2018のふなちのふらふらした軌跡

Alone journey in London...?? - 堕人間の備忘録

SuperCon'17 to PCK'17予選 に 参加した話 - hanahanahunachi’s diary

パソコン甲子園2017を通して味わった最後の青春の味☂ - hanahanahunachi’s diary

kosenハッカソン@函館に参加した記録🐢 - hanahanahunachi’s diary

ラーメンの画像が出てくるブログ - hanahanahunachi’s diary

Unit君感謝.

 

 

  • 結果を踏まえた考察

来年はコンテストにあまり出ないはずなので,人間らしい生活を心掛け,もっち有意義に知識を増やせていけたらいいです.

 

ぐーたらしてると1年はあっという間に過ぎていきます.

かなしいですね.(それはそう)

 

 

今年・・・は・・もっと・・成長・・・し・・・た・・い・・・です.

 

はい...

実はまだまだ続きます。

技術記事なのでAndroid強い人とか興味ある人は読んで,いろいろ鉞やら助言を投げてください.ふなちはかまってちゃんです.

🔗あとがき

hanahanahunachi.hatenablog.com

 

もうすぐクリスマス🎅

ひゃっは楽しんでやるぜ(((o(*゚▽゚*)o)))

 

3Sの人達は今日の数Bのテスト頑張って(私は勉強できてない)

 

あとどうでもいいんですが,これは

正しい羽毛布団と毛布の重ね方

です.今の季節覚えておくと便利でしょう.

f:id:hanahanahunachi:20171222000224p:plain

おわり.

 

明日はとぅらん先輩です!

楽しみです☆(*ノωノ)☆

 

 

 

 

一般人なら絶対に踏まないbugやerror[2]

今回のerrorは,

実行時に∂

「No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)」

ていうのです.

 

あとlayoutをbindingするところでもerrorが出てました。

だから最初「ま~たdetabinding系のerrorかこの~(੭ु´・ω・`)੭ु⁾⁾」って思ってました。が、いつものようにばぐは仕込んでない...しxmlのバグじゃない...

ググりました.

 

すると,

stackoverflow.comプロの解答がありましたね。

 

そう昨日の私,sdkのversionを27にあげてました.はい.

まさかのプロジェクトに設定してるsdkバージョンが26だったんですね.

 

とりあえずバージョンを上げましょう.

(私の様な初心者の人用にコード貼っときます.)

compileSdkVersion 27
defaultConfig {
applicationId "com.example.ほげほげ"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

 

で他のdependenceに書いてるライブラリ達のversionも必要に応じて上げます.

 

実行します.

 

やったぜ.

f:id:hanahanahunachi:20171219012011j:plain

 

完.

 

kotlin not configuredの解決方法

kotlinのplaginをinstallしてるし、configure kotlin in projectもしてるのに、今までの平穏な毎日が嘘だったかのように突如現れる

「kotlin not configured」

に対するふなち流 解決方法を書きます。

 

kotlin の plaginをuninstallしてください。

f:id:hanahanahunachi:20171217005423p:plain

 

はい。サヨナラしましたか?

 

ではもう一度kotlinのplaginをinstallしなおしてください。

 

治ります。きっと。

 

※これなったの私だけと思ってたんですが違うようだったので、今更ですが解決方法書来ました。

 

この方法はあまりにも強引なので他の方法で解決した方がいい気がします. 

Kotlin not configured - Support - Kotlin Discussions

ここら辺やくに立ちそうです(?)

 

 

一般人なら絶対に踏まないbugやerror[1]

※環境はandroid studio with kotlinです。

今回のは問題は

android studioがめっちゃ使いずらくなった」

というものです。

 

下のスクリーンショットをご覧ください。

f:id:hanahanahunachi:20171217001938p:plain

普段android studioを使っている人なら分かると思いますが、なんとなく違和感を感じないでしょうか?

 

上記のコード、本来は(一部コード内容が違いますが)

f:id:hanahanahunachi:20171217002401p:plain

こんな感じで、勝手にimportしてくれますし、android.io.${class object}みたいなことならないですよ~( ◠‿◠ ) 

しかも、syntax errorが表示されないとか、(まあbuildしたらerrorは出るんですけどね)他にはjava classやkotlinのfile/classが作れない*1とかideaが壊れたのかと思いました。

 

これは失敗した方法なんですが

ideaのcachesを消したり、android studioをrestartしたり、コードをcloneしなおしたりとか、いろいろしました。全部無意味でした。

 

でこの問題?errorの解決方法は、

f:id:hanahanahunachi:20171217003053p:plain

 

このjavaっているファイル名をkotlinにリファクタリングしてたんですけど、これをjavaに戻してたら治りました。

 

しかも、その後もう一度java→kotlinにリファクタリングしたんですが、正常に動いて問題は発生しませんでした。

 

以前問題の部分のリファクタリングをした際に何かしら失敗したのかな?(分かる方いたらご教授お願い致します。)

 

 

<結論>

す ご い ‼  普通の人なら絶対に踏まないbugだ。

 

治って良かった(੭ु´・ω・`)੭ु⁾⁾ 

 

+追記+

これ、治ったと思ったらまた復活したり、不安定な状態が続いています。

何かご存知の方いましたらよろしくお願いします。

 

 

 

*1:

f:id:hanahanahunachi:20171217004514j:plain