【Android】開発環境をEclipseからAndroid Studioに移行したときにハマった内容メモ

2011年に作成したアプリを、2020年の今になってバージョンアップすることにしました。以前はEcliseで開発していたので、Android Studioに移行した際にハマった点をメモします(もう皆さんとっくに移行済みだと思うので、自分の備忘として記載)

Android Studio

日本語化しない方がいいです。問題が発生したとき、英語のエラーメッセージでそのまま検索し、翻訳した方がゴールへ近いです。

起動してから2~3分は何もしないで放置しておいた方がよいです。起動してすぐにデバッグしようとしたら謎のエラーが出て困ったのですが、しばらく放置していたら自然と消えました。
ちょっと面倒ですが、Eclipseより断然安定してデバッグできます。

プロジェクトの移行

Android Studioの移行機能は使わない方がよいです。謎のエラーにハマります。新規プロジェクトでActivityなしを選択し、作成されたプロジェクトに既存のJavaソースを入れた方がよいです。
Javaソースはそのまま使えました。
※ソースのフォルダパス中に日本語が含まれるとエラーになります。

ActivityやRなどの仕組みもそのままでした。懐かしい。。。

AndroidManifest.xmlも引き続き存在していますが、ただ、Sdkのバージョン等の指定はこのファイルではなく、build.gradleというファイル内で行うように変わっています。
2020/10/11現在、minSdkVersionは14(Android 4.0)以上しか指定できません。
SDKのバージョンはこちらのWikiを参考にしました。

DatePicker

日付選択に利用していたDatePickerのデザインが大きく変わっていました。年月日をそれぞれ指定するコントロールだったのですが、カレンダー形式になっています。

次の2つのプロパティを指定することで、これまでと同じデザインに戻せました。

android:calendarViewShown="false"
android:datePickerMode="spinner"

Activityの背景色

黒色がデフォルトだったのですが、白色に変わっていました。
元の色に戻れば良いので、「setBackgroundColor(Color.BLACK)」にて色を変更しました。

ネットからデータのダウンロードはメインスレッドでは不可

実行時エラーになってしまうようになりました。
このサイトを参考に非同期に変更しました。

GPSの取得

これは未だに良くわかっていませんが、以下のように指定したところ、以前作成したよりもGPSの受信頻度が格段に上がりました(2種類指定する)。これで様子を見ようかと思います。

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 500, 1, this);
mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 500, 1, this);

パーミッションのリクエスト

以前はAndroidMarketからダウンロードする際に、必要な権限の承諾が求められたはずですが、これがアプリ起動時の承諾に変わっています。

そのため、いきなりActivityを表示するとエラーになってしまいます。
権限を承諾してくれない場合も考慮する必要があります(といっても、承諾してくれなければアプリが使えないので、「許可してください」といったメッセージを表示するくらいしかできないのですが・・・)

こちらのサイトを参考に、承諾画面の表示と、承諾された場合のイベントを実装することで対処できました。

アプリのアイコン

以前はサイズ違いのファイルを用意して、それぞれのフォルダに配置していって面倒だった記憶がありますが、今はとても楽になりました。

こちらのサイトを参照ください。

終わりに

ずっとバージョンアップできずにいたのですが、一度やり始めてしまえば何とかなりました。日本語のサイトが少なくなっている気がしますので、眠っているソースがあれば早めに以降した方がよさそうです。

Xperia XZ1(G8342)が充電できなくなったので修理してもらった話

海外版SIMフリーのXperia XZ1(G8342)という機種をAmazonで購入して半年ほど経ったころに、USBを挿しても充電できない状態になってしまいました。

最初は、半年しか経っていなかったので保証の範囲内で修理してもらえるものと思っていましたが、海外モデルの場合は保証が付いていないということを、故障した後で知りました。
初めて海外モデルを購入したのですが、購入前にもっと確認しておくべきでした・・・(SIMフリーの良い機種がこれ以外になかったんですよね・・・)

困っていたところ、ネットで町のお店という海外モデルのスマホを修理してくれるお店を発見しました。

修理可能か問い合わせしたところ、すぐにメールが返ってきました。
金額は税込み12,960円で、お店まではレターパックライトなどで送付する旨の回答がありました(お店までの送料360円は私の負担)。

ほかにお願いできる場所もなかったので、お願いすることにしました。

お願いした後も、連絡をこまめに頂いて安心できました。
無事に修理できたとの旨の回答を頂き、実際に修理してもらった品を確認したところ、外見上も修理したことが分からない状態であり、安心しました(こじ開けた跡があったらどうしようかと不安でしたが、心配無用でした)。

目的であった充電も問題なく行え、USBを利用してPCへのデータ転送を行うこともでき、助かりました。

このサイトは、こういった内容を紹介するものではないのですが、意外と海外モデルの修理についての情報が少なかったので紹介いたしました。

困っている方は一度相談してみてはいかがでしょうか。

◆修理していただいたお店

町のお店

https://machinoomise.com/html/page9.html

 

 

【LINE】「この写真は破損しているため表示できません」と表示され、投稿できない

現象

LINEグループのアルバムに写真を投稿しようとして、写真を選択すると「この写真は破損しているため表示できません」と表示され、投稿できなかった。 続きを読む 【LINE】「この写真は破損しているため表示できません」と表示され、投稿できない