新安装的 Android Studio 3.1.3 在制作新项目和首次编译时出现奇怪的依赖项错误。
类似的question并不能帮助解决问题。
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details
Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details
Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details
这个问题发生在我身上几次,强制使用https或http 都无法解决
答案 0 :(得分:8)
我认为问题来自以下方面: 与您的互联网连接不可用,因此Android Studio要求您启用“离线工作”,而您刚刚启用了它
要解决此问题:
为什么取消选中脱机工作可以解决此问题,因为在Gradle中有时需要更新某些依赖项(包含“ +”的依赖项),因此需要Internet连接。
答案 1 :(得分:6)
您可能正在导入应用,而不是模块。好了,您也可以在模块的gradle中对其进行更改。
更改
apply plugin: 'com.android.application'
到
apply plugin: 'com.android.library'
您还需要从gradle中删除 applicationId 。
答案 2 :(得分:4)
启用离线模式时出现此问题。我禁用了离线模式并进行了同步。
File > Settings
打开首选项。Build, Execution, Deployment > Gradle
。Offline work
。答案 3 :(得分:3)
subprocess.Popen(os.path.join(__location__, 'gcloud_command.bat'))
和.gradle
目录。 尝试添加Google Maven存储库并同步项目
.idea
如果使用的是Android Gradle插件3.1.3,则应确保gradle包装器版本为4.4。在项目的根目录下,找到buildscript {
repositories {
jcenter()
google()
maven {
url "https://maven.google.com"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url "https://maven.google.com"
}
}
}
并进行如下修改。
gradle-wrapper.properties
答案 4 :(得分:3)
我只是想出了如何消除此gradle错误的方法,请按照以下步骤操作。
让gradle的构建没有任何中断。
谢谢! 希望这会有所帮助。
答案 5 :(得分:3)
我知道这很晚了,但我认为这可能会帮助某人解决他的问题。
在我的情况下,这是因为在我检查SDK管理器时,将compileSdkVersion和targetSdkVersion设置为29,这表明软件包已部分安装。完全安装了SDK版本28。我将compileSdkVersion和targetSdkVersion以及支持库更改为28。
更早的: 编译版本29 targetSdkVersion 29 实施'com.android.support:appcompat-v7:29.+' 实施'com.android.support:design:29。+'
修改后: 编译版本28 targetSdkVersion 28 实施'com.android.support:appcompat-v7:28.+' 实施'com.android.support:design:28。+'
应用这些更改后,它就像一种魅力。
答案 6 :(得分:2)
@shizhen的回答不适用于我的情况。
花了一天多的时间,终于找到了可行的解决方案。 我在办公环境中,因此通过尝试不同的方法,我的gradle文件被损坏了。 因此,我从以下文件中删除了所有代理和端口信息表单,一切正常。
用户-> .gradle-> gradle.properties
另外,我在Android Studio下启用了“自动检测代理设置”->首选项->网络的HTTP代理,Studio会自动检测网络配置。
答案 7 :(得分:1)
任何试图导入自己创建的库的人
我一直在使用 Kotlin Multiplatform 库,并尝试使用jitpack发布我的库,然后将它们拉入其他项目。我是大多数人的新手,不知道我需要在gradle中将publishLibraryVariants添加到我的android配置中。我遵循了其他不需要的教程,因此我不确定让您需要它的Kotlin MPP是什么。这是代码。您可能会发布满足您需求的其他变体,但是这些变体似乎是使用基本项目进行构建的标准要求。 android之后的()并不是绝对必要的,但是它们附带了默认脚本,因此我将其保留。代码与Kotlin或Groovy DSL基本上相同。
在要发布的库的gradle脚本中
kotlin {
android() {
publishLibraryVariants("release", "debug")
…
}
…
}
答案 8 :(得分:1)
我未曾提及的一种可能性。如果您要导入的项目使用的是android产品版本,则您的missingDimenstionStrategy
可能有误。
在:app
build.gradle
(无法解决依赖关系的代码)中,确保已正确设置了所依赖产品的特定风格。这样一来,您以后所有的依赖项代码(例如implementation
,api
等)都可以知道它依赖于哪个精确构建
defaultConfig {
...<snip unrelated>...
// Ensure you specify the flavor you depend on!!
// If dep has multiple flavor dimensions, you need to specify them all
missingDimensionStrategy 'classpath', 'gms17'
}
答案 9 :(得分:1)
我已经解决了如下的Gradle缓存问题。
如果有人使用MacBook,那么下面是我用来解决此问题的步骤。
快捷方式(⌘ + shift + G)
,然后在弹出窗口~/.gradle/
内按Enter键
要删除的文件-> gradle.properties
答案 10 :(得分:0)
就我而言,代码中有一个错字。因此,在尝试其他任何事情之前,请务必先检查一下。
答案 11 :(得分:0)
以下解决方案可能对某人有所帮助。
当我在新模块中使用实施项目(':my_project_other_modules')时,我遇到了这个问题。
我与队友讨论,最后我从一个人那里得到了解决方案, 我必须使用 flavorDimensions和productFlavors。。因为 app / build.gradle 使用了 flavorDimensions和productFlavors。当我在新模块中添加它们时,没有发生错误。
答案 12 :(得分:0)
人们正在积极回答有关离线工作的问题。但就我而言,它位于不同的地方。要在顶部栏菜单中找到它,请选择
在登录时,您可以选择顶部栏菜单中的帮助菜单,并写上“ gradle”,并提示位置。
答案 13 :(得分:0)
如果您曾经使用过代理,VPN等(或者可能不确定,我不确定) .....那么下面的解决方案可能会帮助您...我不知道知道原因(如果有人可以告诉我原因,我将不胜感激),但它确实有效。 当您完全对这个问题感到绝望时,请尝试一下。
进入您的项目,然后打开 gradle-wrapper.properties 或 gradle.properties ,注释掉有关代理的以下代码:
#systemProp.http.nonProxyHosts=118.89.144.241|47.112.105.125
#systemProp.http.proxyHost=127.0.0.1
#systemProp.http.proxyPort=1081
#systemProp.https.nonProxyHosts=118.89.144.241|47.112.105.125
#systemProp.https.proxyHost=127.0.0.1
#systemProp.https.proxyPort=1081
然后,它可能起作用。
PS:当我尝试使用dataBinding library并添加代码时遇到了这个问题
buildFeatures {
dataBinding true
}
当向导告诉我和Syns该项目时,我收到了这样的错误:“无法解决':app @ debug / compileClasspath'的依赖项:无法解决......”。最终,我完成了上面描述的操作,并且成功了。我的经验可能会给您提示,所以我将解决方案发布在这里,希望对您有所帮助。
答案 14 :(得分:0)
尝试在依赖项行中添加配置类型。例如:
implementation project(path: ':some_module', **configuration: 'default'**)`
答案 15 :(得分:0)
从Windows版Android Studio 3.5.2开始,相关问题仍然存在。
在我的特定用例中,当我一直感到头疼的时候,我试图将Gander(https://github.com/Ashok-Varma/Gander)添加到依赖列表中。
事实证明,我尚未在我的cacerts
文件中获得JCenter证书的批准。我正在通过公司防火墙,并且必须使用我尝试导入的依赖项来执行此操作。因此,要这样做:
将证书添加到您的cacerts
文件中:
keytool -import -alias [your-certificate-name] -keystore 'C:\Program Files\Java\jdk[version]\jre\lib\security\cacerts' -file [absolute\path\to\your\certificate].cer
答案 16 :(得分:0)
答案 17 :(得分:0)
就我而言,我使用了Google Play服务...我增加了解决的图书馆服务
if (ModelState.IsValid)
{
var newClinicalAsset = new ClinicalAsset();
var NewModel = new Model();
if (clinicalAssetVM.AssetTypeID == 0)
{
}
else
{
newClinicalAsset.AssetTypeID = clinicalAssetVM.AssetTypeID;
}
if (clinicalAssetVM.ModelName != null)
{
NewModel.ModelAssetAssignmentID = clinicalAssetVM.AssetAssignmentID.AssetAssignmentID;
NewModel.ModelName = clinicalAssetVM.ModelName.ModelName;
db.Models.Add(NewModel);
db.SaveChanges();
}
newClinicalAsset = new ClinicalAsset { ModelID = NewModel.ModelID, AssetTypeID = newClinicalAsset.AssetTypeID};
db.ClinicalAssets.Add(newClinicalAsset);
db.SaveChanges();
return RedirectToAction("Details", "ClinicalAssets", new { ClinicalAssetID = clinicalAssetVM.ClinicalAssetID });
}
库和应用模块中的Google Play服务必须相同
答案 18 :(得分:0)
我有您的问题,我已解决。当您的目标api级别未完全下载时,将出现此错误。您有两种方法:转到SDK菜单并下载所有android 9组件,或者更好的方法是转到build.gradle(Module app)并按如下所示进行更改:But remember, before applying these changes, make sure you have fully downloaded api lvl 8
答案 19 :(得分:0)
就我而言: 设置AS时,我的Windows已配置了代理。 稍后,我断开代理并在AS设置中禁用代理,但是,在文件中 .gradle \ gradle.properties-代理-存在
只需在文本编辑器中清除此文件中的代理设置
答案 20 :(得分:0)
我只是分享这个答案,因为我有类似的问题。
最后,由于我无意中更改了fileTree
而导致了错误。就我而言,我通过更改来解决:
// implementation or compile
implementation fileTree(include: ['*.jar'])
到
// implementation or compile
implementation fileTree(include: ['*.jar'], dir: 'libs')
答案 21 :(得分:0)
我无法找到问题的根本原因,但是找到了解决方法。我首先将java home变量设置为这样。
vi ~/.bash_profile
(仅适用于Mac。bash配置文件在Linux上有所不同)i
进行插入,然后将JAVA_HOME变量设置为export JAVA_HOME=/Applications/Android\Studio.app/Contents/jre/jdk/Contents/Home/
esc
退出vi编辑器,然后键入:wq
答案 22 :(得分:-1)
这个问题发生在我身上好几次了。通常,这4种解决方案之一可以解决我的问题,但它们可能解决或无法解决您的问题。
1)git pull origin master
2)构建->清理项目
3)“文件”->“使缓存无效/重新启动...”为shizhen mentioned。
4)如果上述操作均不能解决您的问题并且您确定自己已经保存了工作(我建议git stash save "comment"
),那么您有110%的把握还是不要介意覆盖,请尝试:
git reset --hard origin master
答案 23 :(得分:-1)
如果同时使用
'com.android.support:appcompat-v7:28.0.0-alpha3'
'com.android.support:support-v4:28.0.0-alpha3'
删除行
implementation 'com.android.support:support-v4:28.0.0-alpha3'
从您的build.gradle
文件中重新尝试。