相关疑难解决方法(0)

使用匕首柄作为依赖注入来处理多个改造客户端?

我想在我的 android 应用程序中使用两个不同的后端,具有不同的响应格式,我使用 hilt 作为依赖注入,并对网络调用进行改造,这非常适合工作。

因为我已经添加了第二个服务器网络文件和应用程序模块,所以它给了我错误,该错误列在最后。

我需要知道在这种情况下的出路,而不需要进行任何显着的架构更改。

@Keep
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Singleton
@Provides
fun provideRetrofit(gson: Gson,@ApplicationContext appContext: Context): Retrofit = Retrofit.Builder()
    .client(
        OkHttpClient().newBuilder()
            .addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)).readTimeout(80,TimeUnit.SECONDS)
            .addInterceptor(
                ChuckerInterceptor.Builder(appContext)
                    .collector(ChuckerCollector(appContext))
                    .maxContentLength(250000L)
                    .redactHeaders(emptySet())
                    .alwaysReadResponseBody(false)
                    .build()
            )
            .build()
    )
    .baseUrl(UtilSingleton.instance!!.GetBaseUrl())
    .addConverterFactory(GsonConverterFactory.create(gson))
    .build()

@Provides
fun provideGson(): Gson = GsonBuilder().create()

@Provides
fun providePostsService(retrofit: Retrofit): ApiService =
    retrofit.create(ApiService::class.java)

@Singleton
@Provides
fun provideApiRemoteDataSource(apiService: ApiService) = ApiRemoteDataSource(apiService)

@Singleton
@Provides
fun provideRepository(
    remoteDataSource: ApiRemoteDataSource
) =
    MainRepo(remoteDataSource)


/**----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------**/

@Singleton
@Provides
fun provideRetrofitEmall(gson: Gson,@ApplicationContext appContext: Context): Retrofit = Retrofit.Builder()
        .client( …
Run Code Online (Sandbox Code Playgroud)

android retrofit2 dagger-hilt

21
推荐指数
2
解决办法
1万
查看次数

错误:任务':app:kaptDebugKotlin'的执行失败

我是新手使用Kotlin并试图用Dagger2设置它,我已经看到了一些例子,但它们似乎都不适合我.

我一直这样

错误:任务':app:kaptDebugKotlin'的执行失败.

内部编译器错误.有关详细信息,请参阅日志

我有我的build.gradle(模块:app)

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.exampleapp"
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    kapt {
        generateStubs = true
    }
    dexOptions {
        javaMaxHeapSize "2048M"
    }
}

ext {
    supportLibVer = '25.0.0'
    daggerVer = '2.8'
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Support lib …
Run Code Online (Sandbox Code Playgroud)

android kotlin dagger-2

14
推荐指数
10
解决办法
1万
查看次数

标签 统计

android ×2

dagger-2 ×1

dagger-hilt ×1

kotlin ×1

retrofit2 ×1