AndroidプロジェクトでKotlin1.3EAPとkotlinx-coroutines-Android:1.0.0-RC1
を使用しています。開発ビルドは成功し、アプリは正常に実行されます。ただし、Generate Signed APK
を実行しても、アプリは引き続き正常に動作します。ビルドして実行しますが、でクラッシュします
Java.lang.IllegalStateException
:Main
ディスパッチャーを含むモジュールがありません。Main
ディスパッチャを提供する依存関係を追加します。例:'kotlinx-coroutines-Android'
Devビルドは正常に実行されるため、gradleファイルに漏れがないことは明らかです。私はこれらの設定を行っています:
プロジェクトbuild.gradle
:
buildscript {
ext.kotlin_version = '1.3.0-rc-190'
....
モジュールbuild.gradle
:
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-Android:1.0.0-RC1'
同じアプリケーションが、さまざまなバージョンの実験コルーチンで実行されてきました。この問題が発生したのはこれが初めてです。 EAPアーティファクトに暫定的な問題があると思われます。
この作品を作るために何を試みることができますか?
Proguardを使用している場合は、これらのproguard rules を追加します。
# ServiceLoader support
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
# Most of volatile fields are updated with AFU and should not be mangled
-keepclassmembernames class kotlinx.** {
volatile <fields>;
}