Let's EncryptでSSLHandshakeException

環境 Pixel 4a(Android 11) エラー HTTP FAILED: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. 状況 https通信時に上記エラー。 通信はOkHttpを使用。 WebViewか…

プロローグにはコンテンツを指定できません。

環境 Android Studio 4.1.2 Android Gradle Plugin 4.1.2 エラーメッセージ FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:extractDeepLinksDevDebug'. > org.xml.sax.SAXParseException; lineNumber: 1; c…

ConstraintLayoutで垂直方向で中央に集める

環境 Android Studio 4.1.2 やりたいこと ConstraintLayoutでViewを上下真ん中に集めたい。 これを こうしたい やったこと いじる前のレイアウトはこちら。

AndroidStudioでrubyのシンタックスハイライト

環境 Android Studio 4.0 やりたいこと AndroidStudioでRubyのソースコードを見やすくしたい。 やったこと TextMate Bundles プラグインをインストール https://github.com/textmate/ruby.tmbundle/ を任意の場所にclone Preferences -> Editor -> TextMate …

XcodeでCreated byの名前を変えるためにやったこと

環境 Xcode 11.6 (11E708) macOS 10.15.4(19E287) やりたいこと Xcodeでファイルを新規作成したときに自動で挿入されるコメント内のユーザー名を変更したい。 // // ContentView.swift // Sample // // Created by (ここに表示される名前) on 2020/08/15 /…

Kotlin + dokka でマルチモジュールのJavadocを生成

環境 Android Studio 3.5 macOS 10.14.4 kotlin 1.3.50 対象のモジュール構成 以下のような構成のプロジェクトを想定し、lib1とlib2のJavadocをまとめて生成する。 モジュール 説明 app lib1とlib2に依存したアプリモジュール lib1 Javadoc生成対象のライブ…

AWSLambdaClient#invokeでTooManyRequestsException: Rate Exceeded.

環境 aws-java-sdk-lambda: 1.11.495 やろうとしたこと 以下のようなコードで長めのAWS LambdaをJavaから実行しようとした。 val invokeRequest = InvokeRequest() .withFunctionName(FUNCTION_NAME) .withPayload("適当なpayload") .withInvocationType(Inv…

AWS Lambda で NoClassDefFoundError

やろうとしたこと AWS Lambda に jar をアップロードして実行したかった。 問題 jarを作成してAWSのコンソールにアップロードして実行すると、ローカルで作成した自作のモジュールのクラスが NoClassDefFoundError 。 環境 IntelliJ IDEA 2018.2.6 (Communit…

ndk-buildにパラメータを渡す

コマンドラインから外部引数を渡したい場合は、 ndk-build -e で指定することでパラメータを渡すことができる。 $ ndk-build -e HOGE=HOGE MAGE=MAGE これで Android.mk から $(HOGE) とか $(MAGE) とかで値を利用できる。 AndroidNDKネイティブプログラミン…

dependenciesの@aarの正体

build.gradleでしばしば見かけるこの記法 dependencies { implementation "jp.co.mst.android:awsome:1.0.0@aar" } この @aar という記法は アーティファクトオンリー記法 といい、以下に説明があります。 第51章 依存関係の管理 アーティファクトオンリー記…

再生時間をLongから mm:ss 形式に変換する

やりたいこと Android の MediaPlayer などで Long で取れる duration を、2:50 のように 「分:秒」の形式の文字列にする。 joda-timeを使えば簡単 LocalTime を使うのもよいが、API Level 26以上を要求されるので、 joda-time-android を使う。 // build.gr…

雨が降りそうになったらGoogle Homeに教えてもらえるようにした

やったこと 雨が降りそうになったらGoogle Homeが「雨が降りそうです」と教えてくれるようにした。 環境 ハードウェア Raspberry Pi 3 Model B+ element14 Google Home mini ミドルウェア raspbian 9.4 node.js 9.11.1 google-home-notifier 1.2.0 WebAPI YO…

java libraryのテストからresourcesが見えない

環境 Android Studio 2.3.1 やりたいこと Android StudioでJava Libraryのモジュールを作成し、テストコードからリソースファイルを読み込みたい。 うまくいかない リソースの読み込みはgetResouce()すれば取れるはずなのだが、main/resources/にファイルを…

Kotlin + Pure Java + JUnit で "Empty test suite."

AndroidStudioで開発中のモジュールを切り出してPure Javaなモジュールにした時に、JUnitがクラスを見つけてくれなくなってしまってかなりハマりました。 エラーメッセージ Class not found: "jp.example.HogeTest"Empty test suite. 解決 build.gradleに以…

Serviceからレイアウトをinflateできない罠

環境 AndroidStudio 2.2.3 compileSdkVersion 24 buildToolsVersion "23.0.3" 現象 Serviceにこんな感じのコード書いたら描画されなかった。(View自体は生成されてる) @Override public int onStartCommand(Intent intent, int flags, int startId) { supe…

iPhoneでテルミンを作りたかった

テルミン is 何 テルミン is これ https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%AB%E3%83%9F%E3%83%B3 要件 音が出ること(単音) 手をかざして上下に動かすと音程が変化すること ソースコード https://github.com/ergooo/iOS_SoundPlayer AudioUnitで音…

Android r22 + ant で java.lang.VerifyError からの java.nio.BufferOverflowException

java.lang.VerifyErrorが出ました 気がついたらJenkins管理下のAndroidプロジェクトのビルドが全滅してました。 antでビルドしてるところでjava.lang.VerifyErrorなるものが吐かれていました。 javadocを覗いてみると クラスファイルが適切な形式でも、ある…

AndroidのHttpURLConnectionのデフォルトのUserAgent

HttpURLConnectionで実装していた部分をHttpClientに変えてみたら、UserAgentが変わってしまいました。 そこでHttpClientのリクエストにHttpURLConnectionのデフォルトのUserAgentをセットしてやろう思ったのですが、それがなかなか見つからなかったのでメモ…

Android JUnit + guava で java.lang.NoClassDefFoundError

Android JUnitのテストプロジェクトからguava-libraryを使ってるプロジェクトのguavaのAPIを使ってる部分をテストしようとしたら java.lang.NoClassDefFoundError と出ました。Android JUnitではなく、通常のJUnitで実行すればちゃんとクラスを見つけてくれ…

Android4.0でdo-whileが実行されない場合がある

Android4.0端末でのみ変数の値がおかしくなるバグを追いかけていて気がつきました。 端的に言うと、Android4.0端末で、ネストされたループ内のdo-while文が実行されない場合がある「実行されない場合がある」なんてボンヤリした表現になってますが、原因はち…