カテゴリーアーカイブ Android

takahashi 著者:takahashi

Androidスマホでレンズに傷がついてしまった時の対処法

最近、以前使っていたスマホ(AQUOS Phone 303SH)をカメラ代わりに使う機会がふえてきているのですが、
ある日、カメラを起動すると、カメラで映している画像が曇っているように不鮮明になってしまっていました。
慌ててカメラ部分をメガネ拭きで拭いたのですが、一向に良くならず…

どうやら、カメラレンズ自体に傷がついてしまっているようです…

このスマホは既に現役を引退しているので、キャリアの修理保証も利きません。
途方に暮れつつもダメもとで調べていたところ、こんな記事を発見。

スマートフォンカメラの写りが悪くなっても○○するだけで復活!! – Tanweb.net

なんと、歯磨き粉をクロスや綿棒につけてカメラレンズを拭いてやるだけで、カメラがよみがえるというのです。

実際に自分でも恐る恐る試してみましたが、確かに、磨く前と比べて、傷がつく前の鮮明さが戻ってきました。

Android搭載の機種のカメラには、コーティング剤が使われているようなのですが、傷がつくとこのコーディング剤が一部剥がれてしまい、ぼやけた写真になってしまうとのこと。

歯磨き粉には研磨剤が入っているので、歯磨き粉をレンズにつけてこすることで、はがれかかったコーティング剤をすべてはがしてくれ、再び綺麗な写真が撮れるようになるという仕組みのようです。

ただ、コーティング剤をはがしてしまうと、今度こそ直に傷がついてしまうので要注意です。
本当ははがしたらすぐにコーティング剤を塗らないといけないのですが、自分の場合保護シートにカメラ保護シートがあったので、それをすぐに貼って保護しました。

もう修理保証も切れていて…修理前に最後の悪あがきで試したい…という方は試してみるといいかもしれません。

ただ、あくまで最終手段で、場合によっては悪化させてしまう可能性も0ではないため、自己責任でお試しください….

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

【Android】ボタンなどのパーツを横並び&横幅均等で配置する方法

久しぶりにAndroidアプリの開発をして、大分忘れていたので備忘録としてまとめ。
今回は2つ以上のボタンを横並びに配置し、かつボタンの横幅を均等に揃える方法です。

参考にさせていただいた記事はこちら。

PercentRelativeLayout で均等配置 – Qiita
https://qiita.com/kojionilk/items/50b0d1c111791a6b419f

なお、タイトルにある「PercentRelativeLayout」は非推奨となりましたので、使用しないようにとのこと。

 

コードはこちら。
LinearLayout という、要素を横一列もしくは縦一列に並べるときに使用するレイアウトの中に、並べたい要素を記述します。
今回は横並びにしたいので、orientation=”horizontal” を指定します。
なお、今回はボタンを2つ並べます。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <Button
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_height="35dp"
        android:layout_weight="1"
        android:text="ボタン1"/>
    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="35dp"
        android:layout_weight="1"
        android:text="ボタン2"
</LinearLayout>

今回重要なのは、4、10行目の layout_width=”0dp” と 6、12行目の layout_weight=”1″ という指定です。
これらを指定することで、2つのボタンを綺麗に同じ横幅かつ横並びにすることができます。
なお、layout_weight では重み付けを行っているので、例えば 1つ目のボタンで 1、2つ目のボタンで 2 を指定すると、1つ目のボタンは 1/3 に、2つ目のボタンは 2/3 の大きさになります。

 

ボタン以外にも、均等に横並びをさせたいことは結構あると思うので、覚えておくと便利です!
ただし、親要素は LinearLayout でなければならず、FrameLayoutRelativeLayout ではできないので、そこだけ注意が必要です。
使わないとすぐ忘れてしまうので…このくらいは覚えておきたいものですね。

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

【Android Studio】「Error:error: uncompiled XML file passed as argument. Must be compiled first into .flat file..」エラーの対処法

業務中、他のスタッフが数年前に開発した Androidアプリをビルドしようと実行したところ、いくつかのエラーに遭遇しました。
今回はその中の1つをご紹介。
なお、他のエラーについては、今後覚えている範囲でご紹介します。

 

エラー文はこちら。

Error:error: uncompiled XML file passed as argument. Must be compiled first into .flat file..

Google翻訳にかけてみたところ、「コンパイルされていないXMLファイルが引数として渡されました。 最初に.flatファイルにコンパイルする必要があります。」という意味のようでした。
これだけだと何をどう直せばいいかさっぱりだったため、こちらのエラー文をそっくりそのまま検索にかけたところ、下記のページがヒットしました。

java – AAPT2 link failed Crashlytics – Stack Overflow
https://stackoverflow.com/questions/45222264/aapt2-link-failed-crashlytics

こちらのページによると、gradle.properties というファイルに、下記の1文を記載すれば解決するとのことでした。

android.enableAapt2 = false

実際に上記一行を追加し、再ビルドしたところ、無事エラーが解消しました!

 

少し古いアプリを実行しようとすると、SDKのインストールやらアップデートやら、さらにエラーの対処等も必要になる場合もあるため、ビルドだけでも一苦労ですね。
エラーに遭遇した場合は、とにかくエラー文を読んで、分からなければテキストを丸ごと検索することをおすすめします。
よっぽどのことがない限り、他の誰かも同じエラーに遭遇していて、さらに別の誰かが解決策を提示しているはずです!

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

日本でGoogle Nexusシリーズの後継ともいうべきGoogle監修ブランド “Android One”

以前、Androidを普及させるために、Google自身が設計し、メーカーのプリインストールアプリを極力排したブランド、”Nexus”というのがありました。
余計なものが入っていない、ほぼ”純正”のAndroidを使うことができる上、端末のサポート期間内は常に最新のAndroidへ更新することが保証されているという、Androidユーザーにとっては非常にうれしい内容で、メーカーによる動作制限やムダ機能にうんざりしていたユーザーを中心に、非常に人気がありました。

僕も普段使っているスマホとは別に、Nexus7を購入しました。
当時としてはスペックもそこそこ高く、サイズ感も大きすぎず小さすぎない形で使いやすく、とても気に入っています。
現在はOSのアップデートからは対象外になってしまったものの、まだまだ現役の端末として利用しています。

そのNexusシリーズですが、残念ながら提供終了が発表され、2016年10月ごろには、公式のオンラインストアからも削除されました。

グーグル、「Nexus」ブランド終了予定、ネクサス端末の販売を一斉終了、アップデートなどサポートは今後も行うとアナウンス – GPAD

その入れ替わりになる形で、Googleの新しい現行のブランド”Pixel”がスタート。
こちらはNexusと打って変わって、Androidの機能をフルに生かせるようなハードウェア構成の”フルスペック”な端末です。
お値段もNexusよりも高くはなるのですが、”Google純正Android”の恩恵を最大限に受けることができるような内容になっています。

速報:Google Pixel 2、Pixel 2 XL発表。今回もスマホ史上最高評価のカメラを搭載 – Engadget

ただしこの端末、記事にもあるように日本では未発売、さらに将来的な発売も未定となっている上、日本での技適を取得していないので、国内で手に入れて使用するのは絶望的です。

Nexusがない今、今後日本ではGoogle純正のAndroidが入った端末は手に入らないのか…と思ってしまいますが、実は現行のものでGoogle純正のAndroidが利用できる端末があります。
“Android One”というシリーズです。

Android One – Wikipedia

Android Oneは、主にアジアなどの開発途上国、新興国市場での流通を目的とした、ミドルからローエンドの低価格帯スマートフォンである[1]。これらの国では裕福層が少なく、高価な端末を購入できる人が少ない。逆に安い端末となると性能が低すぎる上にアップデートが提供されない問題が起きている。Googleはこれらの問題を解消するために、Android Oneを市場に展開した[2]。プロジェクトは2014年よりスタートして以降、世界21ヶ国で展開している[3]。

開発は、各国のパートナーとGoogleが協力し、その国のニーズにあった高品質なハードウェアと、Googleが考えるAndroid体験を実現するソフトウェアを兼ね揃えたスマートフォンを作る。ハードウェア設計から部品の調達までGoogleが行っており、各メーカーから販売されるAndroid Oneは、全て同等の性能を有している。

とあり、NexusやPixelのように純正なAndroidとアップデートを利用できるうえに、価格の割にはハードウェア構成もどちらかというとハイエンド寄りになっている端末が多いのが特徴です。

日本ではY!Mobileをはじめとするキャリアなどで入手できます。

Android One – ワイモバ学園

同シリーズの中でも個人的に特に気になったのが京セラ製のX3という端末。

今までの京セラ製の端末は、どちらかというとローエンド向けで、性能よりも価格重視な印象が強いのですが、このX3という端末はその真逆のフルスペックモデルになっていて、さらに今時は少なくなってしまった赤外線ポートもついているというちょっと面白い端末です。デザインもお洒落です。

ローエンド志向の京セラにこのレベルのハイスペック端末を出させてしまうAndroidOneに、Nexusシリーズに似たポテンシャルを感じました。
自分は丁度SoftbankからY!Mobileへ移行する予定なので、次に変えるとしたらこの辺りの端末かな、と考えています。

ただ、”Android One”は上記にもあるように”発展途上国向け”のブランドです。
Googleから日本がそのようにみられているのかな、と考えてしまうとちょっと複雑ですし、個人的には本命はPixelシリーズなので、是非次のPixelシリーズは日本でも発売されてほしいなぁと思っています。

最近、どのAndroid端末も代り映えしなくなってきてつまらないなーと感じていたのですが、まだまだこれから面白い動きが出てきそうですね。

Pixel2/Pixel2XL – Google

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

【Android】「Gradle sync failed: ‘com.android.support:support-v4-27.0.2’ already disposed」エラーの解決法

ファイルの変更を元に戻したり、色々したところ、「Gradle sync failed: ‘com.android.support:support-v4-27.0.2’ already disposed」というエラーが発生してしまったので、その解決方法について。
解決できなくても、ビルドからの実機での起動ができたので、エラーというより警告のようですが…延々、黄色い帯と「Try Again」の文字が出ているのは、嫌だったので修正開始。

 

と言っても、主に下記のように build.Gradle を修正するだけでした。

allprojects {
    repositories {
        mavenCentral()
        jcenter()
        google()
        maven { url 'https://maven.google.com' }  // 追加する行
    }
}

そして、Android Support Library のバーションを更新します。

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    compile project(':CordovaLib')
    // compile "com.android.support:support-v4:24.1.1+"  // 修正前
    compile "com.android.support:support-v4:26.1.0"  // 修正した行
    compile "com.facebook.android:facebook-android-sdk:4.+"
    compile "com.google.firebase:firebase-core:+"
    compile "com.google.firebase:firebase-messaging:+"
    // SUB-PROJECT DEPENDENCIES END
}

あとは、SDK Maneger も確認し、アップデートがあれば SDK を更新しました。
ただ、これはあまり関係ないかも…?

なお、私の場合は、SDKのアップデートも行ったためか、一度 Android Studio を再起動させたところ、エラーが解消されました。
Gradle を修正したのに、問題が解決しない場合は、ソフトの再起動を試してみるのもよさそうです。

 

ということで、「Gradle sync failed: ‘com.android.support:support-v4-27.0.2’ already disposed」エラーの修正方法でした。
他にも、moven { url ‘https://maven.google.com’ } 以外にも、google() も追加する、との意見もありましたので、そのあたりは、自分の環境や、発生したエラーに合わせて変えてみてください。

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

丸亀製麵のアプリがリニューアル。クーポンがバーコードを読み込ませる仕組みに変更。

手作りのもちもちのうどんや出来立ての天ぷらが楽しめて、しかも安い。丸亀製麵は機会があるときは良く足を運ぶお気に入りのチェーン店です。

そんな丸亀製麵ですが少し前からスマホアプリを使ったクーポン配信などが始まり、よりお得に利用できるようになりました。
そんな丸亀アプリですが、最近リニューアルされたようで、

クーポンについているバーコードをレジで読み込ませる形式に変更されたようです。
いつも店員さんが忙しそうにしている中、恐らく画面を見てレジに割引を打ち込んでいたような感じだったので、これで少し負担が軽減されるといいですね。

他にもスタンプシステムが導入など、使いたくなるような工夫が追加されました。

ちなみに2月7~9の期間限定で夜6時から、鴨ねぎうどんが半額で頼めるようです。

半額カモン! 夜なきうどん – 丸亀製麵

めっちゃ食べに行きたい…

丸亀製麵公式アプリ – 丸亀製麵

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

ストーリーとグラフィックの”オープンソース化”を目指す異色のスマホゲーム”LayereD Stories 0″が面白い!

最近、ふとしたことで知ったゲームがあります。

ゲームのタイトルは「LayereD Stories 0」
舞台は2037年の日本。ARシステム「LayereD」が発展したことで、”イメージできることはすべて実現可能”となった世界です。
この世界では、ARをつかってどんなことも表現可能になった一方で、社会で一定数の人が”不快”を提示したコンテンツやユーザーのアカウントは一方的に削除されてしまいます。そんな中で登場人物たちがそれぞれの葛藤や信念を持ちながら、この仕組みと対峙していくようなストーリーです。

ソーシャルゲームでありながらそんな現実社会の”表現の自由”への考え方に一石を投じるようなストーリーの深さに、とても面白さを感じました。

他にもキャラクターデザインはさることながら、ゲームと本格的なCGアニメの両方をコンテンツとして公開していたりとストーリー抜きにしても力の入れ具合が半端ない印象のタイトルですが、個人的に一番注目したいのは”3Dモデルやストーリーのオープンソース化”が計画されているという点です。

バンナム、UGCを活用して新規IPを創出・育成する新プロジェクト「Project LayereD」始動! – Sotial Game Info

■創出したIPをオープンソース化! UGCを活用してIP育成
「Project LayereD」では、本IPの世界観、キャラクター設定、3Dモデルや2D画像を個人であれば誰でも自由に使える設定・素材として公開、無償提供します。お客様は簡単なライセンス表記のみで二次創作が可能で、個人利用のみならず商用利用も行っていただける予定です。IPの創出のみならず、IP育成においても積極的に二次創作を促し、お客様と一緒に「Project LayereD」を活性化していきたいと考えています。

いままでオープンソースの世界でも、創作界隈でも、”創作物のオープン化”という試みはあまり行われていない印象があります。
ましてや企業の制作物で”オープン化”される作品とは、きわめて希少ではないでしょうか。

プログラムで何か作ろうとしたとき、自分で1からすべてをフルスクラッチで書くのは、非常に大変な作業です。
しかし、オープンソースソフトウェアなどで、あらかじめベースとなるものがあれば、独自の部分だけに力を注げばよくなるので、よりいいものが作りやすくなります。

ゲームにしても物語にしても同じだと思います。1から作るというのは恐ろしい程の労力が必要です。
得意な人や、それを生業としている人は別としても、自力で一から構築していくのは簡単ではないはずです。

でも、作る際に何かベースがあれは、作りたいものをぐっと作りやすくなると思います。
この作品の世界のように、才能や技術にかかわらず、誰でも創作に参加できるような流れづくりに、こちらのゲームが一役買ってくれるのではないのかな、と感じました。

今後の展開に注目していきたいと思います。

レイヤードストーリーズ ゼロ

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

【Cordova】Androidアプリで「resource android:attr/colorError not found.」というエラーが発生したときの対処法

先日、Cordovaアプリを開発中、Android Studio を 2から3にアップグレードした際に発生したエラーの対処法についての記事を投稿しましたが、その第2弾です。
前回のエラー解消後にも、まだ違うエラーが発生しましたので、今回はそちらのエラーについて。
少なくとも私の環境では、前回と今回の2か所を直せば、問題なくビルドできるようになりました。

 

今回発生したエラーはこちら。

error: resource android:attr/colorError not found.

エラー文そのままですが、リソースファイル内の記述の「android:attr/colorError」というのが見つからない、というエラーですね。

こちらの対処法ですが、こちらも前回のエラーと同様に、build.gradle ファイルを修正します。
Android Studio でbuild.gradle ファイルを開き、compileSdkVersionbuildToolsVersion を指定している記述を探します。
そして、それぞれを下記に変更します。

compileSdkVersion 26
buildToolsVersion "26.0.2"

gradleファイルを変更すると、黄色い帯と Sync Now という文字が表示されるので、「Sync Now」をクリック。
以上で修正は完了です。
問題なくビルドと実行ができるようになりました。

 

ちなみに、一つ目のエラーについての記事はこちらから。

【Cordova】Android Stodio 3.0で「Unable to resolve dependency for ‘:@debug/compileClasspath’: Could not resolve project :CordovaLib.」というエラーが出たときの対処法
https://wp.me/p9rRLL-fT

同じエラーでお悩みの方は是非ご参考にしてください。

  • この記事いいね! (1)
村上 著者:村上

【Android】Facebookログインで使うアプリのリリースキーハッシュを取得する方法

こういう設定周りは凄く苦手で、特にFacebookはとことん手こずるので、備忘録としてまとめ。

今開発中のアプリで、Facebookログインを導入しているのですが、こちらの機能の動作確認中に、「Invalid key hash.」というエラーが発生したので、その対処法について。
そもそもこちらのエラーは、「Facebook for Developers」のアプリ設定ページで、エラーメッセージに表示されているキーハッシュが登録されていないために発生するので、キーハッシュを発行して登録すれば解消できます。
…が、これが結構面倒くさい。
コマンドは Facebook の公式ページに掲載されているのですが、肝心な自分の

 

キーハッシュ発行方法は以下の手順で行います。
なお、作業はWindowsのコマンドプロンプト上で行いました。

まず、発行のためのコマンドはこちら。

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

が、そもそも keytoolコマンドが動かないので、下記のcd コマンドでカレントディレクトリを変更します。

cd C:\Program File\Java\jre1.8.0_151\bin

各自の環境によってパスは変更して頂く必要がありますが、私の環境では下記の場所に移動したところ、無事 keytoolコマンドが動作しました。

そして、さっきの keytoolコマンドに戻るのですが…このコマンドの RELEASE_KEY_ALIASRELEASE_KEY_PATH がわからない!
上記のコマンドが掲載されていたFacobookのページにも、その他検索にヒットしたサイトにも、どこから自分の RELEASE_KEY_ALIAS と RELEASE_KEY_PATH を調べるのかは明記されておらず…結構調べました。

で、結論として、まず RELEASE_KEY_ALIASAndroid Studio で確認できました。
Android Studio のメニューバーにある Build > Generate Signed APK… をクリックします。
すると、下記のようなウィンドウが表示されるかと思います。

このウィンドウの中央辺りに「Key alias:」という欄がありますが、これが RELEASE_KEY_ALIAS です。
また、この時設定したパスワードも、キーハッシュ発行時に使うので覚えておきましょう。

次に、RELEASE_KEY_PATH ですが、こちらは、アプリのリリース用APKを生成するときに使用する ○○○.jks ファイルのパスを指定するとのこと。

この3点が分かったので、改めて keytool コマンドを実行します。
実行すると、「キーストアのパスワードを入力してください:」というメッセージが表示されるので、Android Studio で設定したパスワードを入力します。
すると、最後が「=」で終わる、28文字のキーハッシュが表示されるので、こちらをFacebook for Developer のマイアプリページで設定・保存すれば作業は完了です!

それでもうまくいかない場合は、一度Facebookのアプリ設定の「Facebookでログイン」から、該当のアプリを削除してみると、ログインに成功しました。

 

以上、Facebookログイン時に使用するリリースキーハッシュの取得方法でした。
こういう設定周りが苦手な方は、是非参考にしてみてください。

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

【Cordova】Android Stodio 3.0で「Unable to resolve dependency for ‘:@debug/compileClasspath’: Could not resolve project :CordovaLib.」というエラーが出たときの対処法

今回はCordova(コルドバ)というハイブリッドアプリ開発の時に発生したエラーの対処法について。
「ハイブリッドアプリ」については、下記のサイトが分かりやすくて、参考になりました。

ハイブリッドアプリとは? – Qiita
https://qiita.com/soarflat/items/cf5d343c75baadb461dc

 

他のアプリ確認する際に、Android Studioのバージョンを 2から3に上げなければいけなかったのですが、アップデートしたら、Cordovaのアプリがビルドで失敗するようになってしまいました…。
で、対処法がないか調べてみたとこと、案外あっさり見つかって拍子抜けしました。

対処法は、Android StudioでCordovaのアプリを開き、build.gradle ファイルを開きます。
で、下記2行の記述があると思うので、こちらを削除もしくはコメントアウトします。

// 削除するコード
debugCompile(project(path: "CordovaLib", configuration: "debug"))
releaseCompile(project(path: "CordovaLib", configuration: "release"))

で、代わりに下の一行を追加するだけ。

// 追加するコード
compile project(':CordovaLib')

build.gradleを編集すると、黄色い帯と Sync Now の文字が表示されると思いますので、そのまま Sync Now をクリックします。
以上で作業は終了です。
私の環境では問題なくビルドから実機での起動まで正常に動作しました。

 

もし、同じようにAndroid Studioのバージョンを上げてCordovaで開発しているアプリが動かなくなった場合は、是非こちらの方法を試してみてください。

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