Tag: 匕首 2

Android Dagger 2.11与Kotlin,ContributesAndroidInjector注解问题

我用Kotlin使用Dagger 2.11 。 一切都很Dagger但是当我添加ContributesAndroidInjector注解项目我得到这个错误: e: …build/tmp/kapt3/stubs/devDebug/com/raqun/android/di/AppComponent.java:6: error: dagger.internal.codegen.ComponentProcessor was unable to process this interface because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code. e: e: public abstract interface AppComponent extends dagger.android.AndroidInjector<MyApp> { e: 这里是我使用的依赖关系: $rootProject.ext.daggerVersion = 2.11 compile "com.google.dagger:dagger-android:$rootProject.ext.daggerVersion" compile "com.google.dagger:dagger-android-support:$rootProject.ext.daggerVersion" kapt "com.google.dagger:dagger-compiler:$rootProject.ext.daggerVersion" annotationProcessor […]

使用RxJava + Kotlin解析数据时出错

所以我试图解析返回特定用户的组的JSON响应。 一切都正确返回,我尝试将其添加到一个可变的列表,应该在整个文件中持久。 private var GROUPS: MutableList<GroupObject> = ArrayList() 我的RxJava在这里打电话 val getUserGroups = ApiProvider.getUserGroups() compositeDisposable.add( getUserGroups.getUserGroups(prefs!!.accessToken) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe ({ result -> result.groups.mapTo(GROUPS) { GroupObject ( it.id, it.groupName ) } }, { error -> error.printStackTrace() }) ) 当我打印出result.groups,甚至打印出GROUPS [0]时,我看到的都是正确的信息。 然而,当我尝试打印GROUPS [0]时,在这个compositeDisposable之外的任何地方,应用程序崩溃并且说它是null。 我在这里处理一个公然的范围问题? 这个compositeDisposable只能将我的数据保存在订阅方法本身中吗? 任何帮助在这里将不胜感激。 编辑:进一步添加下面的代码,在第一个system.out中显示信息,第二个是null。 val getUserGroups = ApiProvider.getUserGroups() compositeDisposable.add( getUserGroups.getUserGroups(prefs!!.accessToken) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe ({ result […]

用kotlin改造,无法创建@Body

嗨,我得到以下错误: java.lang.IllegalArgumentException: Unable to create @Body converter for class com.jr.app.models.ExampleData (parameter #1) 这是我的ExampleData.kt data class ExampleData(val id: String, val firstName: String, val secondName: String, val profilImages: String, val info: String) { } 我的界面翻新 interface UsersService { @GET("/usersProfile") fun getAllUsers(): Call<List<ExampleData>> @POST("/usersProfile") fun addUser(@Body exampleData: ExampleData): Call<ResponseBody> } 添加用户的功能 override fun addUser(user: ExampleData) { val retrofit […]

当使用Release build变体构建时,Kotlin无法找到Dagger组件

我有这行代码Kotlin活动: DaggerComponentManager.INSTANCE.getViewComponent(this).inject(this) 当我使用Debug构建版本时,它生成的很好,但是当我切换到释放gradle任务时, compileDevelopmentReleaseKotlin失败,出现以下错误: Cannot access class 'ViewComponent'. Check your module classpath for missing or conflicting dependencies Cannot access class 'ViewComponent'. Check your module classpath for missing or conflicting dependencies存在Cannot access class 'ViewComponent'. Check your module classpath for missing or conflicting dependencies这个类肯定存在于两个源代码集中。 任何想法如何修复或至少调试呢? 这里是stacktrace: 异常是:org.gradle.api.tasks.TaskExecutionException:任务':att-thanks:compileDevelopmentReleaseKotlin'的执行失败。 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55)org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84) 。org.gradle.api.internal.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) .tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46)at org.gradle.api.internal.tasks.execution .skipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTas 在org.gradle.execution.taskgraph.DefaultTaskGraphExeter […]

Android:Kotlin与匕首活动模块问题

我想用Dagger 2给一些职业注入活力。 所以我将我的项目添加到ActivityModule类。 当我建立我的项目时,我得到一个错误: …. AppComponent.java:13: error: android.app.Activity cannot be provided without an @Inject constructor or from an @Provides-annotated method. 所有其他模块正常工作。 只有当我在项目上添加活动模块,然后我越来越错误:) class App : Application(), HasActivityInjector { @field:Inject lateinit var component: AppComponent @field:Inject lateinit var injector: DispatchingAndroidInjector<Activity> override fun activityInjector() = injector override fun onCreate() { super.onCreate(); let { instance = this } DaggerAppComponent.builder() […]

错误:未找到注释处理器'__gen.AnnotationProcessorWrapper_debug_android_databinding_annotationprocessor_ProcessDataBinding'

所以,我试图用Kotlin构建我的Android项目,并添加Android DataBinding库。 在Android Studio 2.2.3中没有问题。 但是在更新到最新的Android Studio版本(2.3.0)之后,当尝试运行应用程序时出现此错误。 这是我的项目的build.gradle buildscript { ext.kotlinVersion = '1.1.0' ext.androidGradlePluginVersion = '2.3.0' … dependencies { classpath "com.android.tools.build:gradle:${androidGradlePluginVersion}" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } … 这里是我的应用程序的build.gradle apply plugin: 'com.android.application' apply plugin: 'com.neenbedankt.android-apt' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 25 buildToolsVersion "25.0.2" … packagingOptions { exclude 'META-INF/rxjava.properties' } sourceSets { […]

如何使用Kotlin enum和Retrofit?

我怎样才能解析JSON模型与枚举? 这是我的枚举类: enum class VehicleEnumEntity(val value: String) { CAR("vehicle"), MOTORCYCLE("motorcycle"), VAN("van"), MOTORHOME("motorhome"), OTHER("other") } 我需要解析type为一个枚举 “vehicle”:{“data”:{“type”:“vehicle”,“id”:“F9dubDYLYN”}} 编辑 我试过标准的方式,只是通过我的枚举POJO,它总是空

面对与kotlin匕首的问题2

我编写的代码下面的代码编译没有错误,但是当我尝试运行,我得到异常DaggerAppComponent找不到 AppModule.kt @Module class AppModule private constructor() { @Provides fun providesDispatcher(): Dispatcher { return Dispatcher(providesBus()) } @Provides fun providesUserActionCreator(): PnrUserActionCreator { return PnrUserActionCreator(providesDispatcher()) } @Provides fun providesBus(): Bus { return sBus } companion object { private val sBus = Bus() private var sAppModule: AppModule? = null /** * Gets the app module instance * @return […]

匕首注射不在kotlin工作

有人帮我指出为什么我的代码不起作用。 我试图弄清楚,但我不能找出问题,我尝试注入演示,但我得到的错误: lateinit property appComponent has not been initialized 看来主持人一直没有注入AppModule @Module class AppModule { @Provides @Singleton fun provideMainPresenter(): MainActivityContract.Presenter = MainActivityPresenter() } AppComponent @Singleton @Component(modules = arrayOf(AppModule::class)) interface AppComponent { fun inject(target: MainActivity) } 应用 class App: Application() { companion object { lateinit var appComponent: AppComponent } override fun onCreate() { super.onCreate() appComponent = initDagger() […]

Kotlin Dagger 2不能提供交互器

我已经开始使用匕首2,并面临奇怪的问题。 我有4个模块,其中3个在ApplicationComponent中,另​​一个有不同的Scope(UsersScope)。 将UsersInteractor注入UsersInteractor UsersPresenter 错误:[BlankFragment]] com.interactors.UsersInteractor不能提供没有@Inject构造函数或从@提供注释的方法。 这是我的课程 @Singleton @Component(modules = arrayOf(ApplicationModule::class, NetworkModule::class, DbModule::class)) interface ApplicationComponent { fun plusUsersComponent(usersModule: UsersModule): UsersComponent } @Module class ApplicationModule(private val context: Context) { @Provides @Singleton fun provideContext(): Context = context } @Subcomponent(modules = arrayOf(UsersModule::class)) @UsersScope interface UsersComponent { fun inject(blankFragment: BlankFragment) } @Module class UsersModule { @Provides @UsersScope fun provideUsersRepository(restService: […]