Unity Android部署报错:无法解析okhttp3.OkHttpClient类
解决Android部署中OkHttp依赖无法解析的问题
问题描述
部署Android应用时,先后遇到两个错误:
- 初始错误:
can't resolve symbol okhttp - 当前错误:
unable to resolve class okhttp3.OkHttpClient
已尝试添加自定义Main Gradle Template,并加入以下代码:
implementation 'com.squareup.okhttp3:okhttp:3.0.1' import okhttp3.OkHttpClient;
提供的完整Gradle文件内容如下:
buildscript { repositories { google() mavenCentral() } dependencies { // Must be Android Gradle Plugin 3.6.0 or later. For a list of // compatible Gradle versions refer to: // https://developer.android.com/studio/releases/gradle-plugin classpath 'com.android.tools.build:gradle:3.6.0' } } allprojects { repositories { google() mavenCentral() flatDir { dirs 'libs' } } } apply plugin: 'com.android.library' **APPLY_PLUGINS** dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.squareup.okhttp3:okhttp:3.0.1' **DEPS**} import okhttp3.OkHttpClient; android { compileSdkVersion **APIVERSION** buildToolsVersion '**BUILDTOOLS**' compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } defaultConfig { minSdkVersion **MINSDKVERSION** targetSdkVersion **TARGETSDKVERSION** ndk { abiFilters **ABIFILTERS** } versionCode **VERSIONCODE** versionName '**VERSIONNAME**' consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD** } lintOptions { abortOnError false } aaptOptions { ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~" noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ') }**PACKAGING_OPTIONS** }**REPOSITORIES****SOURCE_BUILD_SETUP** **EXTERNAL_SOURCES**
问题原因
- 错误地将Java导入语句写在Gradle脚本中:Gradle是Groovy语法的构建脚本,不是Java类文件,不允许直接添加
import okhttp3.OkHttpClient;这类Java导入语句,这会导致构建逻辑异常。 - OkHttp版本过于老旧:使用的3.0.1版本和当前Android Gradle插件3.6.0存在兼容性问题,依赖无法正常同步。
修复步骤
删除Gradle中的错误导入语句
找到Gradle文件里的import okhttp3.OkHttpClient;行,直接删除。升级OkHttp到兼容版本
将依赖版本替换为适配Android Gradle插件3.6.0的稳定版,修改dependencies块内容:implementation 'com.squareup.okhttp3:okhttp:4.12.0'同步并清理构建缓存
- 点击Android Studio中的「Sync Project with Gradle Files」按钮同步依赖
- 执行「Build > Clean Project」和「Build > Rebuild Project」,清理旧缓存后重新构建
在代码中正确导入OkHttpClient
回到应用的Java/Kotlin代码文件(而非Gradle脚本),在需要使用OkHttpClient的类顶部添加导入语句:import okhttp3.OkHttpClient;
修复后的Gradle关键部分示例
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.squareup.okhttp3:okhttp:4.12.0' **DEPS**} android { // 原有配置保持不变 }
内容的提问来源于stack exchange,提问作者ChocooPanda
相关产品推荐
相关产品推荐

