找不到引用的方法'java.lang.Object injectMembers(dagger.MembersInjector,java.lang.Object)

时间:2018-11-05 14:25:37

标签: java android jar dagger-2 lib

最近我将Dagger 2.13升级到2.19,在此警告的Proguard阶段出现以下编译错误。

Warning: com.mypackage.MyClass_Factory: can't find referenced method 'java.lang.Object injectMembers(dagger.MembersInjector,java.lang.Object)' in program class dagger.internal.MembersInjectors

这也从Dagger 2.14.1开始发生。这仅发生在我所包含的库中的MyClass上。

如果我使用

-dontwarn com.mypackage.MyClass_Factory

然后它将在运行时崩溃

java.lang.NoSuchMethodError: No static method injectMembers(Ldagger/MembersInjector;Ljava/lang/Object;)Ljava/lang/Object; in class Ldagger/internal/MembersInjectors; or its super classes (declaration of 'dagger.internal.MembersInjectors' appears in MyClass

这意味着Proguard发出的警告是合法警告,我应该注意

我搜索后发现问题{@ {3}}

@ronshapiro的解决方案是

您应该从一个(或两个)库中遮盖dagger.internal。旧的可能是最简单的

shade the dagger.internal是什么意思?如何解决我的问题?

0 个答案:

没有答案