匕首2活动不能提供@提供或@产生注释的方法
我是新来的匕首,我试图实现一个从注入正在发生的类inheritance的类。 当我在MainActivity中注入一个组件并从BaseActivityinheritance它时,事情就破灭了。
我的AppComponentClass:
@Singleton @Component(modules = {NetworkModule.class, ApplicationModule.class, AndroidModule.class}) public interface AppComponent { void inject (BaseActivity baseActivity); void inject (MainActivity mainActivity); } }
我的ActivityModule类:
@Module public class ActivityModule { private Activity activity; public ActivityModule(Activity activity) { this.activity = activity; } @PerActivity @Provides @ActivityContext public Context provideContext() { return activity; } }
我的ApplicationModule类:
@Module public class ApplicationModule { private Application application; public ApplicationModule(Application application) { this.application = application; } @Provides @Singleton @ApplicationContext public Context provideContext() { return this.application; } @Provides @Singleton public FCMTokenHelper provideFCMTokenHelper(Context context, ApiService apiService) { UserRepoImpl userRepo = new UserRepoImpl(apiService); return new FCMTokenHelper(context, context.getClass().getSimpleName(), userRepo); } @Provides @Singleton public UserRepoContract providerUserRepo(ApiService apiService) { return new UserRepoImpl(apiService); } }
我的两个class(都在kotlin)
class MainActivity : BaseActivity() { } abstract class BaseActivity : AppCompatActivity(), GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, ActivityCompat.OnRequestPermissionsResultCallback, LocationListener { @Inject lateinit var userRepo: UserRepoContract @Inject internal var tokenHelper: FCMTokenHelper? = null }
错误(s):
错误:(51,10)错误:.BaseActivity不能提供@提供注释的方法。 在AppComponent.inject(baseActivity)中注入BaseActivity错误:(75,10)错误:无法使用@Inject构造函数或从@提供注释的方法提供MainActivity。 MainActivity被注入到.AppComponent.inject(mainActivity)
使用Dagger 2 ver 2.9 Android Studio 3.0 Kotlin和Java
我的问题在这里:
@Inject internal var tokenHelper: FCMTokenHelper? = null
将其更改为:
@Inject lateinit var tokenHelper: FCMTokenHelper
解决了这个问题。 在这里看到一个好的解释。
- Android Databinding:在方法参数中使用三元运算符时发生ConcurrentModificationException
- Kotlin通用属性问题
- Android本地VPN服务:不能转发数据包
- 使用Kotlin添加自定义的Twitter REST API查询
- Android RecyclerView使用Kotlin处理数据:修改后的行切换索引
- Android Kotlin不能在lambda中使用list.sort()
- 领域查询通知不使用Kotlin触发
- Android室 – 简单的选择查询 – 无法访问主线程上的数据库
- android-kotlin错误:未解决的引用databinding&ActivityMainBinding