未解决的参考:mockwebserver

Posted

技术标签:

【中文标题】未解决的参考:mockwebserver【英文标题】:Unresolved Reference: mockwebserver 【发布时间】:2021-12-08 00:01:37 【问题描述】:

我正在用mockwebserver 编写一个测试套件。我从官方 github 页面输入了所有依赖项。每次我尝试运行测试时,我都会收到Unresolved reference: mockwebserver

没有导入选项。进口上的字母不是红色的。 android Studio 不提示任何内容。除了与未解决的引用相关的错误之外,没有其他错误。

截图:


build.gradle

plugins 
    id 'com.android.application'
    id 'kotlin-android'
    id("org.jetbrains.kotlin.android.extensions")


android 
    compileSdk 31

    useLibrary("android.test.runner")
    useLibrary("android.test.base")
    useLibrary("android.test.mock")

    defaultConfig 
        applicationId "com.example.moviespotter"
        minSdk 21
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables 
            useSupportLibrary true
        
    

    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        
    
    buildFeatures 
        viewBinding = true
        compose true
    
    compileOptions 
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    
    composeOptions 
        kotlinCompilerExtensionVersion compose_version
        kotlinCompilerVersion '1.5.21'
    
    kotlinOptions 
        jvmTarget = '1.8'
    
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all 
        kotlinOptions 
            jvmTarget = '1.8'
        
    
    packagingOptions 
        resources 
            excludes += '/META-INF/AL2.0,LGPL2.1'
        
    


dependencies 

    implementation 'androidx.core:core-ktx:1.6.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation "androidx.compose.material:material:$compose_version"
    implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
    implementation 'androidx.activity:activity-compose:1.3.1'
    implementation 'androidx.test.espresso:espresso-idling-resource:3.1.1'
    testImplementation 'junit:junit:4.13'
    testImplementation 'com.squareup.okhttp3:mockwebserver3:5.0.0-alpha.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
    androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
    androidTestImplementation 'androidx.test:rules:1.4.0'
    androidTestImplementation 'androidx.test:runner:1.4.0'
    debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
    implementation 'com.squareup.retrofit2:retrofit:2.7.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.7.0'
    implementation 'com.squareup.okhttp3:okhttp:4.3.1'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'com.github.bumptech.glide:glide:4.10.0' //Glide
    implementation "androidx.fragment:fragment-ktx:$fragment_version"
    implementation "androidx.fragment:fragment-ktx:$fragment_version"
    implementation "io.coil-kt:coil-compose:1.3.1"
    annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'
    androidTestImplementation 'com.jakewharton.espresso:okhttp3-idling-resource:1.0.0'

【问题讨论】:

【参考方案1】:

既然这是在androidTest中,应该是

androidTestImplementation 'com.squareup.okhttp3:mockwebserver3:5.0.0-alpha.2'

同时混合 5.0.0-alpha.2 和 4.3.1 也是一个痛苦的世界。

【讨论】:

您会推荐哪些版本?我一直在尝试不同的组合,直到找到一个有效的组合。 一切都使用 4.9.2,它是最新的稳定版本。【参考方案2】:

我找到了罪魁祸首。

将依赖项添加到 build.gradle 文件时,它应为 implementation

更改自: testImplementation 'com.squareup.okhttp3:mockwebserver3:5.0.0-alpha.2'

到: implementation 'com.squareup.okhttp3:mockwebserver3:5.0.0-alpha.2'

【讨论】:

实现太高了,它通过使其成为 src/main 的依赖项来意外修复它,而您希望它仅包含在测试中。

以上是关于未解决的参考:mockwebserver的主要内容,如果未能解决你的问题,请参考以下文章

未解决的参考:等待。 Kotlin 协程

未解决的参考 DaggerApplicationComponent

未解决的参考:FlutterActivity

未解决的参考:测试

未解决的参考:TypeToken

未解决的参考:MasterKey