Android Studio构建APK报错求助:已配置目标API版本且可USB调试
嘿,我来帮你搞定这个Build APK的问题!从你描述的项目情况(Cordova混合项目、已配置目标API且能USB调试)和给出的依赖片段来看,大概率是依赖冲突、版本不兼容或者缓存类的问题,这类混合开发项目很容易踩这些坑,下面给你一步步排查的方案:
先解决Apache HttpClient的兼容性问题
Android 6.0(API 23)之后系统默认移除了Apache HttpClient组件,你依赖的org.apache.httpcomponents:httpmime:4.3.5会间接依赖HttpClient,这很可能导致构建报错。你需要在app模块的build.gradle的android代码块里添加以下声明:android { // 其他配置... useLibrary 'org.apache.http.legacy' }对齐CordovaLib与主项目的版本配置
确保CordovaLib子项目的compileSdkVersion、targetSdkVersion和主项目完全一致(你用的appcompat-v7是27.0.2,所以主项目的compileSdkVersion应该是27)。如果CordovaLib的版本和主项目的Gradle插件版本不匹配,也会引发构建错误,建议把主项目和CordovaLib的build.gradle里的Gradle插件版本统一,比如都用com.android.tools.build:gradle:3.2.1(适配API 27的稳定版本)。清理缓存并重新构建
很多时候Android Studio的缓存会导致莫名其妙的构建失败,按这个步骤操作:- 点击
File -> Invalidate Caches / Restart,选择Invalidate and Restart重启IDE - 重启后执行
Build -> Clean Project清理旧构建文件 - 最后执行
Build -> Rebuild Project重新构建
- 点击
更新依赖声明的语法
你当前用的compile fileTree是Gradle旧版本的语法,现在推荐用implementation替代,把这行改成:implementation fileTree(include: ['*.jar'], dir: 'libs')虽然旧语法暂时能用,但新版本Gradle对
compile的支持逐渐弱化,换成implementation能避免一些潜在的语法兼容问题。检查是否有未完成的依赖声明
你给出的依赖最后是imp...,看起来是没粘贴完整的依赖代码,如果确实有遗漏的依赖项,比如未写完的implementation语句,会直接导致构建语法错误,记得把所有依赖补全并检查语法是否正确。
如果按上面的步骤还是没解决,可以把具体的报错信息贴出来,我再帮你针对性分析!
内容的提问来源于stack exchange,提问作者user2285201

