365連休

にわかのandroidとかの開発メモ。

AndroidStudio3.4

【解決】java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/your.pack.name-1/base.apk"],中略/lib/arm64, /system/lib64, /vendor/lib64]]

「Androidアプリの開発中は問題無いが、Play Storeからインストールすると初回起動時のみ異常終了する件」の解決編です。 Crashes the first time the app starts. When installing from PlayStore. 前提条件 Gradle 5.1.1 Android Gradle plugin 3.4.0 minS…

Android Studio 3.4でビルド後にアプリの起動(Instant Run)に失敗する

ある日突然、ビルド&実行ができなくなる。 ググったらこういうケースがあるみたいです。 ログにはresources_apがFileNotFoundExceptionと出てます。 確認したら、実際ファイルはありませんでした。 正常に動いているプロジェクトには存在しています。 なぜか…

【事案】Androidアプリをストアからインストールすると初回起動時のみ異常終了する(# ゚Д゚)

【解決】java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/your.pack.name-1/base.apk"],中略/lib/arm64, /system/lib64, /ve…

Android Studio 3.4のButtonで余白があるのに文字が見切れる件を何とかする。

AndroidのButtonでテキストサイズを大きくしたら、余白があるのに上下が見切れてしまったので何とかする。

Android Studio 3.4でListViewを斜めスクロールする方法(今更感) Diagonal Scroll!!

ListViewでまさかの斜めスクロールを実現。Diagonal Scroll Sample Code!!

Android Studio 3.4でListViewおよびGridViewを使うサンプルコード

Androidでリスト形式のUIを使いたい場合、ListViewやGridViewが手ごろです。 しかし、データの表示には奇怪なAdapterクラスを使用しなければいけません。 個人的にAdapterはだいっっっっきらいですが、少しだけ打ち解けたのでサンプルコードを置いておきます…

Android Studio 3.4でプロジェクト作成時にAndroidXを適用する。

Android Studio3.4で新規にプロジェクトを開始するとき、デフォルト設定で作るとSupport Library 28が適用されます。 AndroidX!なにそれおいしいの? - 365連休 後からAndroidXへリファクタリングできますが、無用のトラブルを避けるため、最初からAndroidX…

Windows10で64bitCPUなのに64bit版のAndroid Studio 3.4(studio64.exe)が起動できない。

32bit版のstudio.exeを起動したら動くので、それっきり忘れてた。 kamihiro.net うちのPCもメモリかつかつ。 Windows10って20年ぐらい前のexeでも試しに叩くと普通に使えて便利です。 おかげで、表題の件すっかり忘れてた。

【Java】getSubsequentOfLastIndexメソッドでファイル名から拡張子を取得する

そんなメソッドたぶん無いです。見つからないので作りました。 便利なものは得てしてシンプルです。 自己責任でご自由にお持ち帰りください。タダです。 static String getSubsequentOfLastIndex(@NonNull String target, @NonNull String delimiter) target…

Android Studio 3.4 Permission & AdMob & GDPRに対応したActivityのサンプル(EU の e プライバシー指令と一般データ保護規則)

自分用のサンプルコードとして、Permissionの取得、AdMobの表示、EUユーザ向けのGDPR対応の機能を持った単一アクティビティのひな形を作りました。個別には大体理解してるけど、「じゃあ全部くっつけたらどうなるの?」という実装案。ベストプラクティスとか…

EU の e プライバシー指令と一般データ保護規則(GDPR)

GDPR関係、出来たら後でまとめたい。まとめた EUユーザの個人情報の国外移転には同意が必要。 広告ユニットを含む場合、個人情報が広告プロバイダへ流れるため同意が必要。 アプリのサービスとして、個人情報をサーバへ送信する場合も同意が必要。 Playスト…

マージされたAndroidManifest.xmlの確認方法

ビルド後のAPKに自身が宣言していないパーミッションが含まれる場合があります。 Android開発では種々のライブラリを利用しますが、ライブラリの中にAndroidManifest.xmlを含むことができます。 そのため、出来上がるManifestは全ての権限をマージしたものに…

GoogleAppIndexingWarningが出たときの選択肢

App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter. See issue explanation for more details. さらに... (Ctrl+F1) Inspection info:Adds URLs to get your app into the Google index, to…

AndroidX!なにそれおいしいの?

AndroidXはSupport Library28の後継らしいです。 たぶんおいしいので移行していきましょう。 developer.android.com 日本語でおけ Android Xの概要 AndroidXはSupport Libraryを改良したもの。 Android OSとは別に提供され、Androidでの後方互換性を提供する…

drawableディレクトリ、mipmapディレクトリ

mipmapはAndroid4.2からサポートされたため、minSDKがそれより古いならdrawableディレクトリにも画像リソースを置いておく必要がある。と解釈。 qiita.com developer.android.com Mipmapping for drawables Using a mipmap as the source for your bitmap or…

【解決】Android 4.4以下でDrawable Resource(ic_vector.xml)を使用するレイアウトがあると、実行時にandroid.content.res.Resources$Not-Found-Exceptionが発生する

前の記事の続きです。 適当に設定を書き換えているだけでは埒が明かないので、一から歴史を勉強してきました。 そもそもVector Drawableリソースを使えるようになったのはAPI21 Android5.0 Lollipopからで、それよりも前のバージョンでDrawableリソースを扱…

【事案】Android 4.4以下でDrawable Resource(ic_vector.xml)を使用するレイアウトがあると、実行時にandroid.content.res.Resources$Not-Found-Exceptionが発生する

解決編は次の記事を見てね。 Activityのレイアウトファイル内で、SeekBarにベクター形式のドローワブルリソースを使用したら、実行環境のAndroidバージョンによってアプリの起動に失敗するケースに遭遇。 LogCat say "android.content.res.Resources$NotFoun…

Android Studio 3.4のレイアウトエディタで属性をスクロールするとどっかいくのを直す

思えば初めからおかしかった。 レイアウトエディタの属性のとこだけマウスホイールを一つだけ動かしただけなのに、ページダウン級にビューンって動いてめっちゃ使いづらかった。 何このドSな設定と思ってた。 ※OSのマウスの設定ではホイールのスクロールは少…

ずっとSENSOR_STATUS_UNRELIABLEのAndroid搭載センサー(# ゚Д゚)

表題の通りです。 安定の踏み抜き率。 センサーから測定値を取得するには、大体次のようなSensorEventListenerになると思います。 @Override public void onSensorChanged(SensorEvent event) { if (event.accuracy == SensorManager.SENSOR_STATUS_NO_CONTA…

Androidには同じタイプのセンサーが複数ある

表題の通り。 Sensorのリスナーでよくあるサンプルコードのようにループで登録しなかったらハマった。 //お手本 final List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL); for(Sensor sensor:sensors){ if(sensor.getType()==Sensor.TYPE_MAGNE</sensor>…

Camera.Parameters.getSupportedFocusModes()の戻り値をenumにしてみた。

android.hardware.cameraのCamera.Parameters.getSupportedFocusModes()の戻り値はParameters内にString定数として書いてありますが、enumが好みなのでまとめてみました。 /** Camera.Parameters.FOCUS_MODEをまとめたもの<br/>FOCUS_MODE.HOGE.equals()で比較を</br/>…

Javaの内部クラスのインスタンス化

android.hardware.CameraのCamera.Sizeをnewしようと思ったら、Android Studioのコード解析で Camera.Size size = new Camera.Size(100, 100); 'android.hardware.Camera' is not an enclosing class って叱られた。日本語でお願いします。 ' アンドロイド. …

Android Studioでアスペクト比を表すクラスを作ってみた

HashMapのキーにアスペクト比を設定したくて作ってみた。 Map<Aspect, HashSet<Camera.Size>> ↑こういうのをしたい コピペは自己責任で。 バグっても責任取れませんので。 Javaの事はよく知らないので、比較はfloatじゃなく100倍したintを使用。 コンストラクタでアスペクト比を計算して、</aspect,>…

Android Studio 3.4でリリースビルドからLog関数を削除する。ProGuard使います。

Log関数はリリース時に必要ないので、勝手に削除してビルドしてくれるかというと、そんなことはありません。 Logcatでログの出力を確認できます。 なので、明示的に削除する必要があります。 削除の方法については、ビルド時にProGuardというのをかませて一…

Android Studio 3.4でActivityとかのサブクラスを表示する。

ハイ、ラルキー! メニュー->Navigate->Hierarchyで全てのサブクラスが表示されます。 Hierarchyは階層って意味だそうです。 発音が全然ヒエラルキーじゃないのでカタカナ呼びはやめましょう。 ショートカットだとCtrl+Hです。ファイルやエディタから使えま…

Android Studio 3.4で文字列リソースの翻訳を編集する

全世界向けにアプリを配信するなら、最低でもデフォルトの言語を英語にして、必要に応じて翻訳(日本語など)を追加します。 具体的には、values\strings.xmlの文字列リソースを英語で定義し、 values-ja\strings.xmlを追加し、文字列リソースに日本語で翻訳を…

【禁忌】Android Studio 3.4でパッケージ名を変更する【魔法】

注意! 禁忌魔法を行使すると世界が崩壊する恐れがあるため、イデア世界へコアエイドスデータのフルコピーを取っておくように。 ふっふ~ん 新しいプロジェクトつっくろ~ パッケージ名はスペシャルアプリケーションで! 完了ぽちっ なんかマニフェストのパ…

Androidのアイコンが増えてる件。あだぷてぃぶあいこん?

新しいアイコンの仕様 Google Play ではアプリアイコンの新しいデザイン仕様を導入いたします。2019 年 6 月 24 日までに対応しなかった場合、アプリアイコンは以前のモードに切り替えられます。2019 年 5 月 1 日以降、新たにアップロードしたアイコンは新…

署名バージョンのV1(Jar署名)とV2(完全APK署名)って何?

リリースビルドして実機テストでもしよっかな~ Googleが再度署名するやつはまた今度。 とりあえず普通で 前に作ったキーストア持ってるもんね releaseでお願いします。 V1?V2?なにそれ? よくわかんないから完了で! ふぁ?日本語でおけ www.google.com …