Android 从Java调用Kotlin显示;无法解析符号“;上课
有两个模块:Android 从Java调用Kotlin显示;无法解析符号“;上课,android,android-studio,kotlin,proguard,android-library,Android,Android Studio,Kotlin,Proguard,Android Library,有两个模块: 应用程序(包含Java和Kotlin类的主/应用程序模块) lib包装器(包含Java类的Android库模块) lib包装器发布在amazons3 bucket上,并在app模块中用作库依赖项。Proguard规则应用于库包装器。到现在为止一切都很顺利 然后将lib包装器的所有类从java转换为kotlin。 现在,所有调用lib包装器方法的java类(在app模块中)都显示红色的“”无法解析符号“ 调用lib包装器方法的kotlin类(在应用程序模块中)没有问题 即使使用
- 现在,所有调用lib包装器方法的java类(在app模块中)都显示红色的“”无法解析符号“
- 调用lib包装器方法的kotlin类(在应用程序模块中)没有问题
- 即使使用java类中的“无法解析符号”,应用程序编译和运行时也不会出错。但对于新用户来说,使用lib包装器非常困难,因为它不会将库类和方法显示为自动完成的建议
- 对apk文件进行反编译时,lib包装器类显示所有预期的类和方法都是公共的,公共成员是普通的/去模糊的。(这是意料之中的。)
- 如果我在lib wrapper的build.gradle中禁用Proguard(“minifyEnabled false”),一切正常。
-keep class kotlin.*.* { *; }
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**
-keepclassmembers class **$WhenMappings {
<fields>;
}
-keepclassmembers class kotlin.Metadata {
public <methods>;
}
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
public static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
应用程序模块的build.gradle文件中使用的插件:
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'maven-publish'
apply plugin: 'org.jetbrains.dokka-android'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
任何帮助都将不胜感激。提前谢谢