- 1. Androidのライセンス表示について(license-tools-plugin)
- 2. TPLINK ARCHER のファイアウォールの設定について
- 3. Android SDK packages as some licences have not been accepted エラーが出たときの対処方法
- 4. Kotlin firstOrNullの使い方について
- 5. タスクキルしたときにForeground Serviceの通知が消えない時の対処方法
- 6. Flutterチュートリアル Todoアプリを作ろう! ~環境構築~
- 7. Roomの実装方法まとめ
- 8. Google Play Console経由でaabファイルをインストール
- 9. 【Android】「java.lang.AssertionError java.lang.NoSuchFieldException」が出たときの対処法
- 10. 【Android】ツールバー(Toolbar)にアプリアイコンを表示しサイズを調整する
- 11. 初めてGithub ActionsでCIとやらをやってみた
- 12. [Flutter]Androidでデバッグ実行しても、エラー発生もなしでインストール状態が続く
- 13. ZOZOのアプリのUIを再現しようの会 【お気に入りタブ編】その1
- 14. Android: SDK Managerに含まれていないCMakeバージョンを使用する
- 15. Play App Signingで登録されている署名のSHA1のハッシュ値を取得する方法
- 16. Pepper SDK入門(33) LookAtで見えないもの以外を見つめる
- 17. 【Android】WebViewをJetpack Composeで使った場合の、バックキーで前ページに戻る方法
- 18. MediaCodecでbitmap列から動画作成
- 19. Couchbase Mobileアプリケーション開発へのロードマップ
- 20. Pepper SDK入門(32) Frameでメリーさんのように正確な現在地を把握する
Androidのライセンス表示について(license-tools-plugin)
#はじめに
仕事でAndroidアプリにオープンソースライセンスを表示させる必要があり、初めてクックパッドさんの`license-tools-plugin`を使用しました。
今後も使用する機会があるかと思い、導入方法をまとめました。#license-tools-pluginとは
[クックパッドさんが公開](https://github.com/cookpad/LicenseToolsPlugin)しているプラグインで、以下の機能が提供されています。
– yamlを使ったオープンソースライセンスの管理
– ライセンス追記漏れのチェック
– ライセンス一覧のhtmlの作成#開発環境
PC:MacBook Pro
OS:macOS BigSur
Android Studio:Arctic Fox 2020.3.1#license-tools-pluginの導入方法
※今回はAndroid開発でよく使われるライブラリをいくつか追加し、`出力したhtmlファイルをwebViewに表示させる方法`について記載いたします。##1.プラグインを追加
build.gradle(pr
TPLINK ARCHER のファイアウォールの設定について
突然通信が途絶することがある
—TPLINKのルーターを使用しているときに突然通信が途絶(WIFIの接続は生きているが、外部との通信が突然途切れる、特定のクライアントのみで他のクライアントでは異常なし)することが頻繁に起きるので調べてみました。
シスログを見てみよう
—
DoS攻撃保護に関するエントリーが見つかったら、ファイアウォールの設定が原因と見られる。ファイアウォールの設定ーDoS攻撃保護
—
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/831262/05109d5a-5abc-5aa3-4e81-148e205152de.png)高に設定された状態で通常の使用をしている最中にYouTubeの再生が途中で止まったり、VPNが途切れたり、色々と不具合が起きていたのですが、どうやらこの設定が原因でした。たしかに、問題が起きている最中は下記のリストに該当のホストが登録されている状態が見えました。
![image.png](https://qiita-imag
Android SDK packages as some licences have not been accepted エラーが出たときの対処方法
# licence error
“`
> Failed to install the following Android SDK packages as some licences have not been accepted.
“`こんなエラーが出ることがある。
“`
$ cd ~/Library/Android/sdk/tools/bin
$ ./sdkmanager –licenses
Accept? (y/N): y
・
・
All SDK package licenses accepted
“`
Kotlin firstOrNullの使い方について
実務でfirstOrNullのメソッド使う時があったため備忘録としてここにメモしておきます
“`
//以下のようなlistがあった場合に頭の1を取得したい場合に`firstOrNull`や`first`を使いますval list = listOf(“1”, “2”, “3”,”1″)
list.firstOrNull { 1 == it.1}
“``fist`,`firstOrNull`の違いについて
“`
val list = listOf(“1”, “2”, “3”,”1″)
list.first {2 == it.4}
//listの中に4がないのでnullになりおちますlist.firstOrNull {2 == it.4}
//listのなかに4はありませんが、該当する値がない場合はnullをあつかってくれるので、あらかじめnull許容にしておけば問題ありません“`
タスクキルしたときにForeground Serviceの通知が消えない時の対処方法
※Pixel 5 Android 12 betaでほぼ確実に発生することを確認しましたが、他の端末・バージョンだと発生するかどうかはまちまちです。
Foreground Serviceを実行している間にアプリをタスクキル(タスクリストからActivityをスワイプして消す)すると、Serviceの`onDestroy`は呼ばれず、Foreground Serviceの通知が残り続けます。
LogCatを見ていると
“`
ActivityManager: Scheduling restart of crashed service
“`のような行が見えます。おそらくタスクキルの操作により一度Serviceが強制停止されるが、システムにより自動的にServiceが再起動されているのでしょう。
以下のようにログを仕込んで、タスクキル時にServiceに何が起こっているかを調べてみました。
“`kotlin
class MyService : Service() {override fun onCreate() {
Log.d(“HOGE”, “onCrea
Flutterチュートリアル Todoアプリを作ろう! ~環境構築~
# この記事を書こうと思った理由
この記事を書く前はFlutterでMarkdownで書けるメモアプリを作成していました。そのアプリの制作が終わったので、ここらへんで一旦自分のFlutterの知識をアウトプットしようと思いこの記事を書きました。## デバック環境
– Windows 10
– Android 30## Flutter環境構築
1. FlutterSDKのダウンロード
[FlutterSDKのダウンロードリンク](https://flutter.dev/docs/get-started/install)
ここからSDKをダウンロードしCドライブ直下などに展開してください。2. Flutter SDKのパス通し
SDKの展開したフォルダ・ディレクトリの名前が「flutter」になってると思います。その中の「bin」のファルダのパスを通してください。3. Android Studioのインストール
[Android Studioのダウンロードリンク](https://developer.android.com/studio)
ここからインストーラーをダ
Roomの実装方法まとめ
[前々回](https://qiita.com/kame_yang/items/131fa044dd8880bc3379)、[前回](https://qiita.com/kame_yang/items/a88c316b5fd90c212d78)に続き、今回は`Room`の実装方法をまとめてみようと思います。
# この記事の内容
公式の[ドキュメント](https://developer.android.com/guide/navigation?hl=ja)やトレーニング「[Android Kotlin の基礎](https://developer.android.com/courses/kotlin-android-fundamentals/overview?hl=ja)」のレッスン6「Room データベースとコルーチン」を参考に実装のポイントとエッセンスをまとめていきます。### 前提知識
* kotlinの基礎的な文法
* AndroidStudioの使い方/アプリの作り方
* 画面や画面部品の配置方法
* `Navigation`の実装方法([前々回](https://q
Google Play Console経由でaabファイルをインストール
# はじめに
bundletoolを使う方法は下記に掲載されている。
https://qiita.com/ikemura23/items/9b6064cb123edc1e233fここではGoogle Play Console経由でインストールする方法を解説する。
# インストール方法
1. Google Play Consoleのアプリ画面からメニューを開き、App Bundle エクスプローラを選択。
![app_bundle_explorer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/f9749f46-b083-24d8-56a9-3b1a42e00ac9.png)2. アップロードボタンからaabをアップロード
3. ダウンロードタブのアクセスを管理から、ダウンロードしたいGoogleアカウントを追加
4. ダウンロードタブの`共有可能なリンクをコピー`からダウンロード
【Android】「java.lang.AssertionError java.lang.NoSuchFieldException」が出たときの対処法
Androidで「java.lang.AssertionError java.lang.NoSuchFieldException」が出たときの対処法をご紹介します。
## 環境
Android Studio 4.1.3
kotlin 1.4.32
java 1.8.0_241## 現象
Androidアプリの評価のため社内リリース版を公開して使用していると、ある箇所でアプリが強制終了しました。
そこでデバッグを有効にしてログを確認してみると以下のエラーが出力されていました。“`
java.lang.AssertionError java.lang.NoSuchFieldException: Open
“`
「Open」は自分で定義したenumクラスの定数の一つです。
デバッグ版ではこのようなエラーが出ていなかっため、気づかずに社内リリースしていたようです。## 解決法
[こちらの質問](https://stackoverflow.com/questions/57790047/getting-java-lang-assertionerror-java-lang-nosu
【Android】ツールバー(Toolbar)にアプリアイコンを表示しサイズを調整する
#はじめに
最近の Android は Material Design を適用することが多くなっています。
また、アプリアイコンには Android7.0 でラウンドアイコン(Round Icon)が登場して、Android8.0 ではアダプティブアイコン(Adaptive Icon)が登場しました。それによってOSごとに表示されるアイコンも変わります。
今回は普通のアイコンとアダプティブアイコン、ベクター画像といったどんな形式のアイコンにも対応できるツールバーのアイコン制御方法を紹介しようと思います。[【公式ドキュメント】アダプティブ アイコン](https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive?hl=ja)
#サンプルアプリを作成
今回は簡単に Android Studio から New Project でサンプルアプリを作成します。
シンプルなアプリの「Empty Activity」を選択しました。
![New_Project.png](https://qiita
初めてGithub ActionsでCIとやらをやってみた
#CIとは?
そもそもCIとは何なのでしょうか。正直私も今回初めてCIを扱うので腑に落ちる理解はできていませんが、すごく簡単にいうと自動的にアプリが正常かどうかチェックしてくれるシステムかなと考えています。#GitHub Actionsを利用してCIをセットアップできる
CIを行うには様々なツールが存在するみたいですが、Github Actionsを利用すると他のCIツールと同じようにプッシュやプルリクなどの操作をトリガーにして処理を実行させることができます。#セットアップしてみよう
CIを導入したいプロジェクトのリポジトリに行くと画面上部にActionsというタブ?があるのでそれをクリックします。
これをクリックするとワークフローをセットアップしようねみたいな画面が出てくるのでその中から自分が作成したプロジェクトの言語と
[Flutter]Androidでデバッグ実行しても、エラー発生もなしでインストール状態が続く
## 概要
– Androidでデバッグ実行しても、エラー発生もなしでインストール状態が続く
## 環境
– Mac OS Big Sur 11.6## 原因
– 裏でアプリのキャッシュデータみたいなのが残っている可能性がある
## 対策
– adb uninstall ${packageName}
で Successと表示されればデバッグ実行できるようになる
## 参考
– https://stackoverflow.com/questions/51809421/flutter-is-not-able-to-install-the-apk-into-the-real-device-suddenly
ZOZOのアプリのUIを再現しようの会 【お気に入りタブ編】その1
##はじめに
知り合いのAndroidエンジニア方たちとZOZOTOWNのアプリのUIを再現しようというハッカソン的なことを始めました。そこで実装していく上で考えたことや詰まったことなどを何回かに分けて記事として投稿していこうかなと思います。ZOZOTOWNのアプリは画面下に5つのタブがついています(著作権的なことが怖いので画像は載せません?♂️)。今回は一人が一つのタブ毎の画面を担当するという構成になりました。僕はお気に入りタブの担当になったので、お気に入りタブに関して書いていきます!
今回はTabLayoutとViewPager2の接続部分をやっていこうと思います。
##今回の完成像
##全体の構成
TabLayout + ViewPager2 + FragmentStateAda
Android: SDK Managerに含まれていないCMakeバージョンを使用する
私はFlutterでアプリを開発しているのですが、依存するライブラリがC/C++のコードを含んでおり、Android向けのビルドではCMakeのバージョンも指定されていました。Android Studioで該当バージョンのCMakeをインストールしてもエラーでビルドできなかったため独自にインストールして対応しました。[^1]
私がAndroidのネイティブ周りに明るくないこともあり手こずったのでメモしておきます。#環境
– macOS 11.6
– Android Studio 4.1.1#Androidのdevelopersサイト
CMakeのインストール方法について[公式の開発者向けサイト](https://developer.android.google.cn/studio/projects/install-ndk?hl=ja#kts)にも以下のような記述があります。>
1. CMake の公式ウェブサイトから CMake をダウンロードしてインストールします。
2. Gradle で使用する CMake バージョンをモジュールの build.gradle ファイルで
Play App Signingで登録されている署名のSHA1のハッシュ値を取得する方法
Play App Signingで登録されている署名のSHA1のハッシュ値を取得する方法がわからなかったので調べてみました。
まずは、Play Store ConsoleのPlay App Signingのページに記載されているSHA1のフィンガープリントをバイナリーエディタに貼り付けて、保存。ここではファイル名をsha1.binとします。
その後以下のコマンドで、base64.txtにハッシュ値を出力します。“`
openssl base64 -in sha1.bin -out base64.txt
“`
以上です!
Pepper SDK入門(33) LookAtで見えないもの以外を見つめる
#はじめに
LookAtは特定の物や人を見たり、頭部とホイールでそれをトラッキングしたりするのに用いられます。魑魅魍魎や未確認生物の類は見えないはずですが、逢魔時とか丑三つ時とかに試してみるといいかもしれません??
下はLookAtアクションをPepperに実行してもらう場合のサンプルコードです↓“`java
//LookAtのためのターゲットフレームを取得
Frame targetFrame = …;//アクションをビルド
LookAt lookAt = LookAtBuilder.with(qiContext)
.withFrame(targetFrame)
.build();//非同期にアクションを実行
FuturelookAtFuture = lookAt.async().run(); //実行キャンセルのリクエスト
lookAtFuture.requestCancellation();
“`#見て見てPepper
Pepp
【Android】WebViewをJetpack Composeで使った場合の、バックキーで前ページに戻る方法
WebViewでは、バックキー(戻るボタン)を押した場合に前のページに戻る(ブラウザバック)のが一般的な動作かと思います。
本記事では、WebViewをJetpack Composeで使った場合の、バックキーで前ページに戻る方法をメモとして投稿します。# コード
“`kotlin
@Composable
fun MyWebView() {
// 1
val backPressed = remember { mutableStateOf(false) }// 2
AndroidView(
factory = { context ->
WebView(context).apply {
webViewClient = object : WebViewClient() {}
}.also {
it.loadUrl(“https://qiita.com”)
}
},
//
MediaCodecでbitmap列から動画作成
動くコードと参考文献を載せておきます。kotlin&Coroutineに書き直しました。随所お好みにカスタマイズしてください。
jcodecの100倍くらいエンコード早かったです。さすがAndroid純正フレームワーク。2021/10/08:
エラーが出たので、scaled.recycle()をコメントアウトしました。2021/10/10:
読み込ませるframeのwidthとheightが、偶数値でないとエラーになるバグを修正しました。“`使い方.kt
val frames: List= ….
val videoFile: File? = MediaCodecEncoder().encode(this, frames)// suspend function“`
“`MediaCodecEncoder.kt
// MediaCodecフレームワークを使ったエンコード
class MediaCodecEncoder {private val MIME_TYPE = “video/avc”
private va
Couchbase Mobileアプリケーション開発へのロードマップ
# はじめに
Couchbase Mobileによるアプリケーション開発に関する記事や参考情報を、カテゴリー別に整理しています。
## 関連技術
https://qiita.com/yoshiyuki_kono/items/05496b26e1dc4eb99ddb
## 基本的な使い方(ドキュメントより)
### Couchbase Lite
https://qiita.com/yoshiyuki_kono/items/b24266297c4b53017264
https://docs.couchbase.com/couchbase-lite/current/index.html
### Sync Gateway
https://docs.couchbase.com/sync-gateway/current/introduction.html
## チュートリアル
https://docs.couchbase.com/tutorials/mobile-travel-sample/introduction.html
### 利用可能な言語
#### Androi
Pepper SDK入門(32) Frameでメリーさんのように正確な現在地を把握する
#はじめに
都市伝説に登場するメリーさんは、自分の現在地を丁寧に電話してきてくれます。Pepperもそのように正しい位置を把握できれば便利ですね!そこで登場するのがFrameです。
Frameは特定の位置を表します?それでは早速、順を追ってFrameについての理解を深めていきましょう。#FreeFrameかAttachedFrameで最先端
Frameの位置は後から更新されます。交信はしません??
FreeFrameは緯度と経度を表します。例えば本棚の位置にフレームを設定すれば、Pepperはどこに動いても本棚に戻ってきます。
AttachedFrameは対象の物体との相対位置を表します。人も設定することが可能で、その人が動けば一緒についていくピクミン的挙動を示します?画像は刷り込まれるひよこです。
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた