FirebaseでのAdMob広告実装時にハマったこと No matching client found for package 原因は google-services.json 内の "client": [ { "client_info": { "mobilesdk_app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "android_client_info": { "package_name": "jp.co.xxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx" } }, package_name の値は applicationId になるのですが build.gradle の buildTypes や productFlavors で applicationIdSuffix を設定していたりするためにエラーとなるよう
なぜコレが必要か? Firebase SDKを組み込んだ処理は、通常 Google Services Plugin と google-services.json をアプリに組み込むことで動作する このPluginはApplicationビルド用のプロジェクトでしか動作しない ライブラリプロジェクトにFirebase SDKを組み込んだ場合、上記の前提だとUnitTestをするためのApplicationプロジェクトが必要になってしまう 明示的な初期化を行うことで、ライブラリプロジェクトだけでUnitTestが行える 方法 @RunWith(AndroidJUnit4::class) class HogeTest { @Before fun before() { FirebaseApp.initializeApp(context, FirebaseOptions.Builder().also
動くコードと参考文献を載せておきます。kotlin&Coroutineに書き直しました。随所お好みにカスタマイズしてください。 jcodecの100倍くらいエンコード早かったです。さすがAndroid純正フレームワーク。 2021/10/08: エラー箇所をコメントアウトして修正しました。(scaled.recycle()) 2021/10/10: 読み込ませるframeのwidthとheightが、偶数値でないとエラーになるバグを修正しました。 // MediaCodecフレームワークを使ったエンコード class MediaCodecEncoder { private val MIME_TYPE = "video/avc" private val FRAME_RATE: Int = 30 private val BIT_RATE: Int = 16000000 private val
こんにちは!アルダグラムでエンジニアをしている渡邊です! 本記事は株式会社アルダグラム Advent Calendar 2023 1日目の記事です。 早いもので2023年もあと一ヶ月となり、2024年もまもなくです。最近モバイルアプリのクロスプラットフォーム開発では Flutter や Kotlin Multiplatform などをよく見かけます。 しかしクロスプラットフォーム開発といえば... そう WebView を使った方法があります。 これは WebView で HTML を表示させることで Android や iOS などで共通に画面を作成する方法で、モバイルアプリ開発の初期からあった方法です。 プロジェクトの構成や工数、実装難易度によって WebView を使った開発を採用することもあると思いますが、個人的な意見としてそれは選択肢としてアリかと思っています。 最近アプリチーム
GoogleがリリースしているAndroid用入力アプリにはGboardとGoogle日本語入力の二つがありますが、どうやら将来的にはGboardに統合されるらしいですついに統合されたようです。という訳で乗り換えてみたところ、なんか使いにくかったので今回は記号の入力や外国語の入力など使いやすくするおススメ設定を紹介します。 2:記号/数字入力を簡単に google日本語入力ではQWERTYキーボードのキー右上に記号が小さく表示されていて上スワイプで入力できたのですが、Gboardはそれがなく、良く言えばシンプル、結果的には不便です。これでは記号入力のたびに絵文字のページに移動し、記号を選択する必要があります。 最終的には、こんな感じになりました。数字を一発で入力できるようになり、記号がスワイプで入力可になりました。また、ついでに中国語ピンイン入力もできるようにしました。という訳で、設定方法
Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。 Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。
AndroidとMacの組み合わせで使っている方も多いはずです。この組み合わせで不便に感じるのは、AndroidからMacに写真や動画を送信したいときではないでしょうか。 不便に感じている人たちは世の中に多くいて、これを解決するソリューションはいくつかあります。たとえば、AnDropというアプリがあります。アプリをAndroidとMacにインストールしておくと、AirDropを使うような感覚で写真や動画がAndroidからMacに転送できます。 AnDrop - AirDrop for Android - Google Play のアプリ AnDrop on the Mac App Store AnDropの使い勝手には満足していますが、Androidから転送するファイル数が多かったり、ファイルサイズが大きくなると、転送が終わるまでに極端に時間がかかるか、MacのAnDropがフリーズした
はじめに ScrollViewの中にRecyclerViewを置くケースです。 通常のScrollViewは使えないので、ネスト可能なNestedScrollViewを使用します。 画面全体がスクロール可能で、下の方にリスト表示がある構成です。 レイアウト構成 ざっくりですが、こんな感じです。 NestedScrollViewの中にコンテンツAとコンテンツBのレイアウトを包含しており、 コンテンツBのレイアウトにRecyclerViewが定義されております。 Activityのレイアウト <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk
表題のとおりです。PermissionsDispatcherのGitHub READMEに記載されている情報が主な内容です。 PermissionsDispatcherについての詳細は以下からどうぞ。 github.com 権限まわりに関する実装は、ライブラリなしの場合煩雑になりがちですが、PermissionsDispatcherライブラリを使うと、権限の承認が必要な処理を実行する際、指定した権限の許可がない場合に権限の承認のためのリクエストを表示したり、リクエストが却下された際に実行する関数などの指定を行うことができます。実行したい関数にアノテーションを付与することで、いつ、どの権限をリクエストするのかなどを指定できます。 詳細は上記のREADMEなどを参照してください。 PermissionsDispatcher KTX 上記に記載したように、PermissionsDispatche
上が一般的によく使うキー操作だと思います。 この他に、いくつか面白いものもありましたので、ついでに紹介します。 スポンサーリンク F8ボタン(ネットワークのOn/Off) F8を押すと、画面の一番上に表示されている「3G」アイコンの表示の切替ができます。 3Gアイコン消灯中は、ネットワークに接続できない状態になります。 これを使うと、ネットワークへ接続するアプリケーションであれば、異常系の試験が出来ますね。 左Altキー + Enterキー(フルスクリーンモード) 左のAltキーとEnterキーを同時に押すと、Androidエミュレータの画面が、PCのスクリーン一杯の大きさになります。 まぁ、たいして使う事はないかもしれませんが、改めて知ったので、ちょっと驚きました。 F6ボタン(トラックボールモード) F6ボタンを押すと、Androidエミュレータ画面の左上部に、変なボールみたいなものが
配列クラスの contentToString メソッド 配列を扱うためのクラスである Array<T> や IntArray などのインスタンスを、println() などで出力しようとすると、JVM 表現で分かりにくい文字列が出力されてしまいます(例: [I@2c7b84de)。 このような場合は、Kotlin が拡張関数として用意している contentToString() メソッドを使用すると、読みやすい形式で配列の内容を出力できます。 プログラム例 // ジェネリクス型配列の場合 val arr1: Array<Int> = arrayOf(1, 2, 3) println(arr1) println(arr1.contentToString()) // プリミティブ型配列の場合も同様 val arr2: IntArray = intArrayOf(1, 2, 3) println
こんにちは、Android エンジニアのてつ(哲)です。 Android 14 は、2023 年下半期に正式にリリース予定とされています。最近(03月08日)、Android 14 Preview 2 が公開されたため、今回は自分が注目している部分について、内容と試した感想を紹介したいと思います。 新機能 アプリインストールの事前承認 スクリーンショットの検知 エミュレータでスクリーンショットを撮る方法 変更点 まとめ 新機能 アプリインストールの事前承認 Starting with Android 14, the requestUserPreapproval() method lets installers request user approval before committing the install session. This improvement lets an app s
The 'kotlin-android-extensions' Gradle plugin is deprecated. Please use this migration guide (https://goo.gle/kotlin-android-extensions-deprecation) to start working with View Binding (https://developer.android.com/topic/libraries/view-binding) and the 'kotlin-parcelize' plugin. deprecated のエラーが出ていたので、 build.gradle から kotlin-android-extensions を取り除いた
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く