カテゴリーアーカイブ 未分類

asaba 著者:asaba

【android apk】Failed to install apk to deviceの解決法

sourceTreeで更新したアプリをビルドしようと思った矢先にFailed to install apk to deviceというデバイス関係のエラーに

引っかかってしまいました・・・。↓画像

文脈から「デバイスにapkをダウンロードできませんでした。」日本語にするとこんな感じでしょうか、ざっくりですみません。

 

しかし、今までできたダウンロードがいきなりできるのも解せないので、英字たっぷりのサイトなどでかたっぱしから調べてみた結果

どうやら読み込みが遅くてがADBタイムアウトしたのではないかというヒントを見つけました。

ADBとは、Android SDKに含まれているツールの一つです。デバイスのアクセスや値の更新などandroidの設定ならなんでもできる

万能ツールで、androidアプリの開発者にはなくてはならないものの一つです。

調べてみた結果、そのADBにはある指定された秒数を超えると、タイムアウトして読み込みをやめるように設定されているようです。

通常のADBに設定されているタイムアウトのデフォルト値が5000ミリ秒なので、おそらくその時間を超えてダウンロードしていたため

エラーになったと思われます。

なので、ADBの接続時のタイムアウトの値をかえてしまいましょう。10000秒くらいがちょうどいいのかなと思いましたがお好みで。

ちなみに自分はこのやり方で解決しませんでした。

 

ここでandroidツール系定番のメンテ処理であるandroidStudioのバージョンをダウングレードも考えましたが、後々のgradle関係のエラーを避けたいのもあり

どうしても穏便に解決したかったので今更新したアプリを端末でアンインストール、さようならして再び同じアプリを入れた

ところで無理やり解決させました。

本当はタイムアウトの設定も変えておいたほうが良かったのですが、エクリプスの記事ばかりだったので確証を持てたら

また試してみようと思います。

  • この記事いいね! (0)
takahashi 著者:takahashi

Gitでファイルのパーミッションを変更しただけで”ファイルを変更した”扱いになってしまうときの対処法

Unix系の環境でGitの操作をした際、権限を変更しただけで”ファイルを変更した”扱いになってしまうことがあります。

例:

chmod 755 -R hoge
cd hoge
git diff

diff --git a/API/.editorconfig b/API/.editorconfig
old mode 100644
new mode 100755
diff --git a/API/.env.example b/API/.env.example
old mode 100644
new mode 100755
diff --git a/API/.gitattributes b/API/.gitattributes
old mode 100644
new mode 100755
diff --git a/API/.gitignore b/API/.gitignore
old mode 100644
new mode 100755
diff --git a/API/app/Console/Kernel.php b/API/app/Console/Kernel.php
old mode 100644
new mode 100755
diff --git a/API/app/Exceptions/ApiException.php b/API/app/Exceptions/ApiException.php
old mode 100644
new mode 100755
diff --git a/API/app/Exceptions/Handler.php b/API/app/Exceptions/Handler.php
old mode 100644
new mode 100755
diff --git a/API/app/Http/Controllers/Auth/ForgotPasswordController.php b/API/app/Http/Controllers/Auth/ForgotPasswordController.php
old mode 100644
new mode 100755
...

プログラムの動作上、権限の変更が必要になることがあるのですが、そのたびに変更の取り消しを行うのは面倒ですし、ローカルでファイルの変更を行っていたりするとさらにややこしくなる可能性があります。

実は、Gitで権限の管理を無効化する方法が標準で用意されているので、設定を行うだけで権限の変化をししてくれるようになります。

git config core.filemode false

として

git diff

を実行すると、権限の変更を行っても検知されなくなっているのがわかるかと思います。

お困りの方は是非参考にしてみてください。

  • この記事いいね! (0)
takahashi 著者:takahashi

Gitで特定のディレクトリのみチェックアウトする方法

Gitリポジトリは扱いやすさの面で、基本的に一つのプロジェクトに対して一つのリポジトリにすべきだと思っています。(一つのリポジトリに複数のプロジェクトを入れてしまうと管理がちょっと面倒くさくなる。)

ただ、やむをえない事情で複数のプロジェクトを一つのリポジトリに入れておかないといけない場合が出てくることがあります。(使用できるリポジトリ数に制限がある場合など)

そういう時にGitリポジトリの一部をチェックアウトできると便利ですよね。

今回は、Gitで一部のディレクトリだけをチェックアウトする方法をご紹介します。

今回は、操作はCUI上ですべて行います。

まず、目的のGitローカルリポジトリ内の”.git”が存在するディレクトリがカレントディレクトリになるように移動します。

例:

cd path/to/gitdir #.gitがあるディレクトリに移動
ls -a #ディレクトリの中身を表示
. .. hoge huga .git piyo 

次に、下記のコマンドで”.git/info/sparse-checkout”ファイルを作ります。

vi .git/info/sparse-checkout

エディタで下記のように編集します。

/hoge

/hogeのみをチェックアウト

あるいは

!/huga
!/piyo

/huga
/piyo
を除外

というように指定します。

この後、

git read-tree -m -u HEAD

とすると、指定されたディレクトリのみが残ります。

ls -a
. .. hoge .git

こうしておけば、リポジトリが同じでも、自分が触っていないところを誤って変更したり削除してしまったり、ということも防ぐことができて便利です。

お試しあれ。

参考サイト:
Gitで特定のディレクトリだけcloneする方法 – Qiita

  • この記事いいね! (0)
asaba 著者:asaba

【javaScript】split関数を使って文字列を分割する方法

先週は丸々一週間androidの記事だったので他の話題も振っていきたいと思います。

splitはStringオブジェクトの組み込みメソッドとして用意されており、文字列を任意の箇所で区切って分割することが可能になります。

今回はそのsplit関数を使ってスラッシュで区切られている値を切り分けて取得する方法を書いていきたいと思います。

はじめに、ごくシンプルなコードで説明していきます。

ここでは例として動物の名前をカンマで区切って、それをsplitで分割していきたいと思います。

[javaScript]
var str = 'user-1,user-2,user-3';

//「, (カンマ)」で区切って分割する

var result = str.split(',');

[/javaScript]

console.logで試してみると、resultの中にしっかりと動物ごとに区切られて格納されていることが分かると思います。

[javaScript]
["うさぎ", "ネコ", "タヌキ"]

[/javaScript]

また、分割された文字列は配列のように番号を指定した取り出すことができます。

取り出す方法は受け取ったresult変数で番号を指定するだけ。ここまで取得できれば後は煮るなり焼くなりで好きなように

各値を扱うことができます。

[javaScript]
const rabbit = result[0];
const cat = result[1];
const raccoon = result[2];
[/javaScript]


reactでも同じ形式で使えるので、splitを使ってみたいという方の参考になればと思います。

ここまでのベーシックな使い方を覚えていれば捻った運用などをしなければ困らないかと思われます。

split関数は、Dateで取得した時刻や生年月日をハイフンやスラッシュで区切って切り分けた度分秒や年月日

を利用したい変数に各々入れて使ったりと小回りが利くので、使いこなせるようになると便利ですね。

  • この記事いいね! (0)
takahashi 著者:takahashi

Slackのデザインが一新!その変化に賛否両論の声

ある日いつも通りSlackを開いたら変化が…

なんだか見慣れない感じになってる!?

気になって調べたら、Slackがいつの間にかデザイン変更されてました!

Slack のロゴが新しくなりました! – The Official Slack Blog

ブログによると、従来の#のロゴは、背景や角度を変えるとちょっと微妙な見た目になってしまうことが多く、いろいろな場所で使えるようにするためにSlackのロゴを複数用意したところ、今度は統一感が無くなってしまうという悩みを抱えていたようです。


The Official Slack Blog より引用

The Official Slack Blog より引用

ちなみに、macOS版App Storeの新着情報での説明はこんな感じ。

コホン…
(こういうユーモラスなの好き)

ということで、統一感を確保し、かつどのような背景や扱われ方になっても見栄えのよいロゴに刷新されたというわけですね。

しかし、一部のユーザーやメディアからは今回の変更に微妙な声が上がっているようです。

Slack、新ロゴ導入中、一部で批判の声も – Teck Crunch

んー…まぁ確かにロゴは”シンプルになった”って感じはあんまりしないですよね…w

そんな流れを見て、SlackのCEOは
まぁ一か月もすれば皆慣れてきて批判も収まるだろ\(^q^)/

と楽観的なコメントをしているようです。

いやまぁそうかもしれないけども、それCEOさん言っちゃう???
的なコメントですね…w

しかしロゴ一つとっても、デザインって難しいですよね…

自分はデザイン方面はダメダメなので、デザインをいろいろ考えられる人って本当にすごいなぁ、と思います。

とにもかくにも、今回は飽くまでデザインの変更のみのようなので、たとえ変更が気に入らなかったとしても、あまり目くじらを立てずに普段通り利用していきたいですね。

  • この記事いいね! (0)
takahashi 著者:takahashi

【要注意】さくらのクラウドのCentOS6フレーバーはデフォルトで時刻同期が無効になっている

とあるサイトで、時刻を使用したプログラムを実行した際、何故か変な値が返されることがわかり、調べたところ、サーバー時刻のずれが原因でした。

このサイトはさくらのクラウド上で動作していて、OSはCentOS6を使用しています。

なぜ時刻がずれてしまったのか調べたところ、時刻同期デーモンであるChronyd が動作していないことがわかりました。

$ sudo service chronyd status
chronyd is stopped

今後時刻がずれるのを防ぐためにChronydを有効化します。

sudo chkconfig chronyd on
sudo service chronyd start

これでOKです。

さくらのクラウドは仮想環境なので、ホストマシンの時刻と自動で合わせてくれる機能が実装されていたり、Chronydかntpdが自動で有効化されているものだと思っていたのですが、そうではなかったようです。

サーバーで動作するプログラムはサーバーの時刻がずれているとかなり影響が出ますので、さくらのクラウドでCentOS6を使われる方は、一度時刻同期が動作しているか確認した方がよさそうです。

  • この記事いいね! (0)
takahashi 著者:takahashi

Chromecast Audio、 生産終了だってよ…

Chromecast シリーズのデバイスの一つであるGoogle Cast Audioですが、先日、生産を終了したそうです。

Google、「Chromecast Audio」販売終了へ – ITMedia

現状、日本版Googleストアではまだ販売されているようですが、恐らく在庫限りだろうとのことです。

Chromecast AudioはChromecastの音声専用版で、Chromecastに対応したデバイスであれば、どのデバイスからでもWi-Fi経由で音声を飛ばすことができます。

自宅にもAUX付きでネットワークにつながらないスピーカーがあるのですが、音が結構いいのでよく使っていて、ChromecastAudioで無線化しようかなーとかちょっと考えてたので今回の発表はちょっと焦ってます(;´∀`)

思い切って買っちゃおうかな….

  • この記事いいね! (0)
asaba 著者:asaba

【cordova-react】またRが定義されていない・・・

androidのネタになります。

 

いつもどおりtextViewとimageViewをxmlに追加してアクティビティにもオブジェクトを追加してビルドしたのですが

またCannot resolve symbol Rに呼び止められてしまいました(怒)

 

いつもどおりゴミが溜まったのかと思いクリーンビルドしてみたのですが今度はそれが原因ではないみたいです。

ならばと思い範囲を広げてRebuild projectを実行。ログでサクセスが出てきたので今度こそ

治ったかと思ったらまたCannot resolve symbol R・・・失敗しました。

 

先人の知識を借りて画面左下のbuild Valiantsを押してデバッグモードからリリースモードに変更して

再度ビルドしてみても結果は変わらず。

 

やっぱり定義先に問題があるかと思い再度xmlのページにいって再調査。

そういえばimageViewは前のプロジェクトからそのままコピペしたな~もしかしたらこのxmlで使っていない

属性が定義されていてそれが悪さしてるのかと思いそこを重点的に探しました。

 

すると、使っていないっぽい属性を発見。

<ImageView
android:id=”@+id/image_view”
android:scaleType=”center”
android:contentDescription=”@string/description”←こいつだ!
android:layout_margin=”10dp”
android:layout_width=”match_parent”
android:layout_height=”wrap_content” />

 

前のプロジェクトでstring.xmlでボタンの名前などを定義するときに使っていたcontentDescription。

 

こいつはこのプロジェクトでは使っていなかったので迷わず削除して再ビルド。

すると見事にビルドが成功、エラーの原因を突き止めることができました。

 

前のプロジェクトから似たようなコードをコピペするときは使っていないメソッドや属性を確認してから

組み込みましょう。ということを再実感しました。

 

とりあえず同じエラーが起きることのないようリファクタリングを厳しくしましょう。

  • この記事いいね! (0)
takahashi 著者:takahashi

GoogleHomeが家に来た件

年末のセールで購入したGoogleHomeがついに届きました\(^o^)/

中身はこんな感じです。

とってもシンプル。

セットアップはスマホの”Home”アプリから行います。

Google Home – Google Play Store

画面の指示に従えば特に困ることなく設定できました。

起動直後のGoogleHome

一言で音楽をかけてくれたり、リマインダーを設定してくれたり、”おはよう”と呼びかけるだけでニュースや今日の予定を教えてくれたりとかなり便利です。

またIFTTTなどをつかえばいろいろなものと連携できるようなので、機会があれば試してみたいと思います。

  • この記事いいね! (0)
takahashi 著者:takahashi

GitHubのプライベートリポジトリがついに無料化!

昨日、IT界隈にとってビッグなニュースが飛び込んできました!

GitHubの無料ユーザーもプライベートリポジトリを無制限で使用可能に – Gigazine

現在、世界でおそらく最もよく使われているだろうプロジェクト管理サービスのGItHubの”プライベートリポジトリ”がついに無料化されたようです…!

GitHubでは名前にある通り、プロジェクトに付随する形のGitリポジトリを利用することが可能ですが。このGitリポジトリには

・パブリックリポジトリ
・プライベートリポジトリ

の二種類があります。

パブリックリポジトリは従来から無料だったリポジトリの種類です。
パブリックリポジトリの場合、自分の立ち上げたGItリポジトリやプロジェクトに対して、だれでもアクセスできるようになっています。

これにより、他の不特定多数のGitHubユーザーから質問や意見をもらったり、コード修正案をもらったりすることができますし、またGItHubのプロジェクトページをそのまま完成品のダウンロードページにすることもできます。

一方で、ソースコードを含めすべて公開されてしまうので、企業で開発した物や、個人で開発してはいても、人に見せたくないものなど、一般に公開したくない成果物を扱うのには向きません。

プライベートリポジトリはパブリックリポジトリの逆になるので、つまり特定の許可されたユーザーのみがプロジェクトやGitリポジトリにアクセスできる形態です。

いままでこのプライベートリポジトリを利用するためには有料プランを契約する必要がありましたが、今回のアップデートで、無料ユーザーでも3プロジェクトまで利用可能になりました。

“GitHubで開発したいけど、プライベートリポジトリを無料で作りたい…”という理由で別のサービスに流れていたユーザーも結構いたようなので、今後GitHubに移行するユーザーが増えるかもしれませんね。

Compare features – GitHub

  • この記事いいね! (0)