ByteX
ByteX copied to clipboard
java.lang.RuntimeException: proguard.ParseException: Expecting opening '(' or separator ';' before 'return' in line 5 of file
getter-setter-inline在开启R8的情况下去读了R8的配置作为proguard的输入,但此时proguard无法解析R8的配置,而proguard能解析的文件此时应该为lib/META-INF/com.android.tools/proguard/coroutines.pro
java.lang.RuntimeException: proguard.ParseException: Expecting opening '(' or separator ';' before 'return' in line 5 of file '/Users/lizhangqu/.gradle/caches/transforms-2/files-2.1/be3013c369a9f4ff6b34b8da68529ccf/rules/lib/META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro'
协程相关proguard引入来自此依赖中的META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1
META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro
# Allow R8 to optimize away the FastServiceLoader.
# Together with ServiceLoader optimization in R8
# this results in direct instantiation when loading Dispatchers.Main
-assumenosideeffects class kotlinx.coroutines.internal.MainDispatcherLoader {
boolean FAST_SERVICE_LOADER_ENABLED return false;
}
-assumenosideeffects class kotlinx.coroutines.internal.FastServiceLoaderKt {
boolean ANDROID_DETECTED return true;
}
-keep class kotlinx.coroutines.android.AndroidDispatcherFactory {*;}
# Disable support for "Missing Main Dispatcher", since we always have Android main dispatcher
-assumenosideeffects class kotlinx.coroutines.internal.MainDispatchersKt {
boolean SUPPORT_MISSING return false;
}
# Statically turn off all debugging facilities and assertions
-assumenosideeffects class kotlinx.coroutines.DebugKt {
boolean getASSERTIONS_ENABLED() return false;
boolean getDEBUG() return false;
boolean getRECOVER_STACK_TRACES() return false;
}
META-INF/com.android.tools/proguard/coroutines.pro
# When editing this file, update the following files as well:
# - META-INF/com.android.tools/r8-upto-1.6.0/coroutines.pro
# - META-INF/proguard/coroutines.pro
-keep class kotlinx.coroutines.android.AndroidDispatcherFactory {*;}
有计划修掉这个问题吗