每当我对kotlin类进行注入时,我都会在构建中得到此注释(顺便说一句,我有一个既包含kotlin又包含Java的混合android项目)。
例如,执行以下gradle任务:(compileStagingDebugJavaWithJavac
StagingDebug是我的构建变体),我收到以下消息:
“注意:为com.packageNameXXX.CourseDiscoveryMapFragment生成MemberInjector或Factory。最好在该类上运行匕首处理器。”
我的CourseDiscoveryMapFragment代码可以在这里看到:
class CourseDiscoveryMapFragment : Fragment(){
@Inject
lateinit var presenter: CourseDiscoveryMapPresenter
lateinit var mapView: MapView
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_discovery_map, container, false)
MapsInitializer.initialize(activity)
mapView = view.mapView
mapView.onCreate(savedInstanceState?.getBundle(BUNDLE_KEY_MAP_STATE))
(activity as BaseActivity)
.activityComponent.inject(this)
}
我的ActivityComponent是:
@ActivityScope
@Subcomponent(modules = ActivityModule.class)
public interface ActivityComponent {
void inject(BaseActivity baseActivity);
void inject(CourseDiscoveryMapFragment fragment);
//Exposed to sub-graphs.
Activity activity();
}
因此,我有用Java编写的Dagger组件和模块,而在Kotlin中有Dagger注入。
这是我应该担心的吗?
谢谢。
您可以发布整个错误/警告以及与此相关的代码吗?
—
marcospereira '16
这个问题需要更多细节。您基本上是将Google查询写成一个问题。
—
杰森·米纳德
@marcospereira重新编辑!谢谢!
—
法比奥
嘿,您是否找到解决方案,或者可能是发出警告的原因?
—
wojciech_maciejewski,2016年