Vapor Trail

明るく楽しく元気よく

『不可能を可能にせよ! NETFLIX 成功の流儀』がめっちゃ面白かった

 

不可能を可能にせよ!  NETFLIX 成功の流儀

不可能を可能にせよ! NETFLIX 成功の流儀

 

 

創業者マークランドルフNETFLIXの立ち上げから取締役を辞任するまでのストーリー。ちなみにDVDによる郵送レンタルサービス時代の話が主でストリーミングについての話は出てこない。

 NETFLIXがはじめから順風満帆でうまく行ったわけではなく、ドットコムバブルの崩壊・資金調達・事業の選択と集中・採用・企業文化・社員のリストラと泥臭い話が出てきておもしろい。

ひらめきは簡単に起こらない

優れたアイデアひとつの裏にはろくでもない千のアイデアがある、それが真実だ。しかも両者の違いを見分けるのはとても難しい。

 ある日突然アイデアがひらめていて成功した!という話は単純化されていて、実はその裏ではダメなアイデアがたくさんボツになっている。

 マークランドルフは、一人ひとりにカスタマイズできるバット、専用に調合できるペットフード、パーソナライズド・シャンプーなどのアイデアを出したが共同創業者のリードヘイスティングスにすべて却下された。

 結局ビデオを返し忘れて延滞金が請求されたことがきっかけで、ビデオの郵送レンタルのサービスを思いつくが当初は採算がとれそうになかった。ちょうどその時DVDが普及し始めるときだったので、分厚いビデオではなく薄いDVDを利用した郵送レンタルでサービスを始めることができた。

 また起業するとなると自分で借金をして事業につぎ込むイメージがあるが、自分で身銭を切るべきではないと言っている。

「夢に資金を投じるなら、使うのは他人の金だけにしておけ」である。起業はリスキーだ。賭けるのは自分の身一つにするべきである。あなたはアイデアに人生を注ぎ込む。財布の中身を注ぎ込むのは他人にやってもらおう。

 スタートアップは綱渡りである。数カ月後には資金がショートしてしまう。そんな胃がキリキリするような状況で、自分のすべての時間とお金を注ぎ込んでしまうと、冷静な判断ができなくなるのだろう。

 仕事に熱中しつつも家族と共に過ごす時間を設けていたというのは印象的である。

人を大人として扱うこと

 シリコンバレーのIT企業というと、無料の豪華な社食やペットを連れて来ることができるオフィス、充実した福利厚生がクローズアップされるが、そういったものは企業文化でもなんでもない。

私たちのオフィスは明確なメッセージを発していた。主役は自分たちじゃない、お客様だと。個々で働く理由は目先の変わった特典や無料の社食があるからではない。仲間意識とやりがい、優秀な人々と難しくて面白い問題を解く時間を過ごすチャンスのためだ。

エンジニアはお金だけではなく、

  • 一緒に働く人達を尊敬できるか
  • 面白い課題に取り組めるか

この2点を求めているのだという。

 人は大人として扱われたいのだ。自分が信じるミッション、解決すべき問題、それを解決するための裁量を求めているのだ。尊敬できる能力を持った他の大人の中に身を置きたいのだ。

リーダーの役割は行き方ではなく行き先を伝えること

従業員に自由と責任そして裁量を与えることで、子供扱いせずにやりがいをもって働くことができる。

リーダーとしてのあなたの仕事は彼らにルートを判断させることである。道のない困難な旅の同行者としてこの顔ぶれを選んだのは、あなたが彼らの判断力を信頼し、彼らが自分のやるべき仕事わきまえているからであるはずだ。だからリーダーとして、全員を野営地に必ず到着させるための最善の方法行き方ではなく行き先を伝えることである。明確な座標を示したら、あとは自分で判断させよ。

 絶対うまくいかない

夢を現実に変えるために取れる最強の手段は簡単、とにかく始めてみればいい。アイデアがいけるかどうか本当に分かる唯一の方法は実行することだ。一生かけて考えるより、1時間やってみるほうが多くを学べる。だからこの一歩を踏み出してほしい。何かを創造し、形にし、テストし、売ってみよう。自分のアイデアが行けるかどうか実地に学ぼう。

 

『作って学ぶAndroidアプリ開発[Kotlin対応] 』を読んでAndroid入門した

自分のレベル

Gradle・Android・Kotlinなにもわからん業務歴2年のPHPer。

本を読む前にUdemyでKotlinの基本について学びました。
www.udemy.com 

本の感想

作って学ぶAndroidアプリ開発[Kotlin対応]

作って学ぶAndroidアプリ開発[Kotlin対応]

  • 作者:有山 圭二
  • 発売日: 2020/04/17
  • メディア: 単行本(ソフトカバー)

 Android + Kotlinのアプリ開発系の技術書で一番新しくて、ちょうど出版されたばかりなので読むことにしました。技術書って鮮度があるので時間がたつほど動かなくなる可能性も高くなるし、変な部分で詰まって時間浪費しないようにこういう変化が速い技術の本は早めに買うことをおすすめします。

 Mastodonのクライアントアプリを開発しながら学んでいく内容の本でRepositoryパターン、MVVMアーキテクチャを使用したり、Credentialの扱いなど「実際の業務ではどのように作るべきなんだ?」という疑問に答えてくれている実践的な内容がよかったです。またGlide・Moshi・OkHttpなどのライブラリも使用するのでAndroidアプリ開発で有名なライブラリ群も知れたのでよかった。

 Amazonのレビュー評価が低めですが、Android開発未経験の自分にとっては難易度が高かったです。ライブラリを多用したり発展的な内容が多いのでAndroid開発の経験をもつ人がKotlinで開発したいとか、少なくとも2~3年他の言語で開発経験のある人が最低ラインのように感じました。

 Android開発って環境構築が鬼畜なので本と同じ通りにやってもおそらく動かない人もいるし、自分もGradleのビルドでちょこちょこエラーが出たので各々の環境で発生したエラーを自力で解決する力が求められます。

 Recyclerview、コルーチン、データバインディングアノテーションを多用してきたあたりでよくわからないなと思いました(汗。

 自分は細かい部分がよくわからなくても「こういうものなんだな」と思って先に進めていくほうなのであまり気にならなかったけど、ちゃんと理解してから進めていきたい人はめっちゃ時間かかると思います。

Android開発の感想

 2020年にもなってAndroid開発に入門した感想としては一言で言うとムズいです。 

 根本的にAndroidの知識が欠けているというのもあるが、AndroidManifest・レイアウトファイル・ViewModel・Fragmentなどの複数のファイルが連携して動くので、いまいちどう連関して動いているのか理解できず余計難しく感じました。

 PHPを始めたときもそうだけど最初はドキュメントを読んでもどう使えばいいのかわからないので、自分のやりたいことをググってコピー&ペーストして少しずつ動かしながらこう動くのかと試行錯誤して開発している現状です。

 IntelliJ IDEAだとJavaのコードを自動でKotlinに変換してくれるのでまじでありがたい。

 あとドキュメントのガイドは日本語化されているのでとりあえず隅々まで読むつもりです。
developer.android.com

 

Android開発のスキルを身に着けたい

 Android開発が予想以上に難しかったのでAndroidのスキル身につけたら他の人と差別化できるかなと感じました。

 もし業務でAndroidのプロジェクトを引き継いだりした場合、KotlinだけではなくJavaの書き方やAndroidのバージョンごとの違いも知っている必要があり最新の変化に追従しながら過去の知識もキャッチアップするのが大変そうではあります。

 モバイルアプリはクロスプラットフォーム開発ならReact Native、Flutter、単体で開発するならiOSはSwift、AndroidはKotlinを使用するという流れだと認識しています。過去にはXamarin、Cordova、Titanium Mobileなどがあったものの淘汰された印象で、どの技術が今後メインストリームになるのか正直わからないです。

 今は業務でCordovaを使用していて凝ったことをやろうとするとネイティブ層に手を入れるため結局AndroidiOSの両方の知識が求められる(汗。

 そういう理由もあって(MaciPhoneを持ってないからiOSの開発ができないということもありますが)流行りに左右されるようなReact Native、Flutterよりもネイティブに近い+サーバサイドもいけるKotlinを選びました。

 とりあえず作りたいアプリの構想はあるので、完成させてPlayストアまで出すのが今の目標といったところです。

kaptのdatabindingをbuild.gradleに追加するとgradle errorになる

環境

JDK 11.06
Kotlin 1.3.72

kotlinlang.org

gradleにkaptを追加するとbuildに失敗する。

app/gradle.build

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: "org.jlleitschuh.gradle.ktlint"

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"
    // kapt
    dataBinding {
        enabled true
    }
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
   > java.lang.reflect.InvocationTargetException (no error message)

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:kaptDebugKotlin'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:166)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:163)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:156)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
    at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
    at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
 at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:375)
 at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:142)
 at org.gradle.internal.work.DefaultAsyncWorkTracker.access$000(DefaultAsyncWorkTracker.java:34)
 at org.gradle.internal.work.DefaultAsyncWorkTracker$1.run(DefaultAsyncWorkTracker.java:106)
 at org.gradle.internal.Factories$1.create(Factories.java:26)
 at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:260)
 at org.gradle.internal.work.DefaultWorkerLeaseService.withoutProjectLock(DefaultWorkerLeaseService.java:171)
 at org.gradle.internal.work.DefaultWorkerLeaseService.withoutProjectLock(DefaultWorkerLeaseService.java:165)
 at org.gradle.internal.work.StopShieldingWorkerLeaseService.withoutProjectLock(StopShieldingWorkerLeaseService.java:95)
 at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:102)
 at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:80)
 at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:68)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:484)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
 at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:461)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:444)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:93)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:237)
 at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
 at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
 at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
 at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
 at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
 at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
 at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
 at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
 at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
 at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
 at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
 at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
 at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
 at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
 at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:208)
 at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
 at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
 at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
 at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
 at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
 at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
 at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
 at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
 at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
 at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
 at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
 at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
 at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
 at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
 at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
 at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
 at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
 at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:69)
 at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:47)
 at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:140)
 ... 34 more
Caused by: java.lang.reflect.InvocationTargetException
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at org.jetbrains.kotlin.gradle.internal.KaptExecution.run(KaptWithoutKotlincTask.kt:158)
 at org.gradle.workers.internal.AdapterWorkAction.execute(AdapterWorkAction.java:50)
 at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:47)
 at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:65)
 at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1$1.create(NoIsolationWorkerFactory.java:61)
 at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98)
 at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.execute(NoIsolationWorkerFactory.java:61)
 at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
 at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
 at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
 at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
 at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:56)
 at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:215)
 at org.gradle.workers.internal.DefaultWorkerExecutor$3.call(DefaultWorkerExecutor.java:210)
 at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215)
 at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
 at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
 ... 3 more
Caused by: java.util.ServiceConfigurationError: javax.annotation.processing.Processor: android.databinding.annotationprocessor.ProcessDataBinding Unable to get public no-arg constructor
 at kotlin.collections.CollectionsKt___CollectionsKt.toCollection(_Collections.kt:1206)
 at kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(_Collections.kt:1239)
 at kotlin.collections.CollectionsKt___CollectionsKt.toList(_Collections.kt:1230)
 at org.jetbrains.kotlin.kapt3.base.ProcessorLoader.doLoadProcessors(ProcessorLoader.kt:80)
 at org.jetbrains.kotlin.kapt3.base.ProcessorLoader.loadProcessors(ProcessorLoader.kt:45)
 at org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Kapt.kt:42)
 ... 29 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
 ... 35 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
 ... 35 more


* Get more help at https://help.gradle.org

BUILD FAILED in 268ms

github.com Java9以降でjaxbを使用できないらしい。
java xmlのdependenciesを追加したらbuildに成功するようになった。

app/gradle.build

dependencies {
    // kapt dependencies
    kapt "com.sun.xml.bind:jaxb-core:2.3.0.1"
    kapt "javax.xml.bind:jaxb-api:2.3.1"
    kapt "com.sun.xml.bind:jaxb-impl:2.3.2"
    annotationProcessor "com.sun.xml.bind:jaxb-core:2.3.0.1"
    annotationProcessor "javax.xml.bind:jaxb-api:2.3.1"
}

もしくはJDK11ではなくJDK8を使用すると動くようになるはず。