android - 将旧的 Eclipse 项目导入 Android Studio 会导致 Gradle 3.3.1 错误
问题描述
在进行了几次搜索之后,我不确定要遵循哪种方法来解决这个问题。
使用导入时的所有默认设置将旧的(3、4 年)Eclipse 项目导入最新的 Android Studio。导入后,摘要说它用依赖项替换了两个 JAR:
android-support-v4.jar => com.android.support:support-v4:22.2.1
android-support-v7-appcompat.jar => com.android.support:appcompat-v7:22.2.1
和一个具有依赖关系的库:
google-play-services_lib => [com.google.android.gms:play-services:+]
现在,该项目将无法构建,因为它会立即给出此错误:
ERROR: Could not find com.android.tools.build:gradle:3.3.1.
Searched in the following locations:
- https://jcenter.bintray.com/com/android/tools/build/gradle/3.3.1/gradle-3.3.1.pom
- https://jcenter.bintray.com/com/android/tools/build/gradle/3.3.1/gradle-3.3.1.jar
Required by:
project :
Add Google Maven repository and sync project
Open File
Enable embedded Maven repository and sync project
在 Eclipse 项目的新转换中,我会突然遇到这个问题,这似乎很奇怪。两个 URL (jcenter.buntray.com) 当被点击时返回一些 JSON,几乎说资源不存在。
我在导入时做错了什么?还是我没有在 SDK 中正确安装一些东西?与其他问题不同,AS 已经告诉将 gradle 引用到 jcenter 而不是 maven。
啊-我遗漏了以下内容-单击“添加 Google Maven”并接受“预览”后,gradle 进行了一些处理,并报告我的 gradle 版本太低(支持的最低版本是 4.10,我的版本是 4.8)和给我一个更新的选项。
进行更新后,它似乎开始构建,但随后将我返回到上面的第一个错误,关于找不到 3.3.1。(就像项目文件被重置回导入状态一样。
在这些步骤之间没有进行任何手动文件保存。
解决方案
查看官方文档:
找不到 com.android.tools.build:gradle:3.3.1。
发生这种情况是因为您必须在根文件夹中的文件(也称为顶级文件)中的块中添加google()
maven存储库。android gradle plugin 3.0 或更高版本需要它。buildscript
build.gradle
buildscript {
repositories {
// Gradle 4.1 and higher include support for Google's Maven repo using
// the google() method. And you need to include this repo to download
// Android Gradle plugin 3.0.0 or higher.
google()
...
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
}
}
要更新 gradle 的版本,只需gradle/wrapper/gradle-wrapper.properties
在根文件夹中编辑。
...
distributionUrl = https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
...
推荐阅读
- python-3.x - 采购 ./zshrc 会生成一个 if 语句,每次都会显着减慢 shell 加载时间
- javascript - 使用 useCallback 钩子记忆 API 响应
- .net - 如果绑定安全性设置为 NONE,WCF 客户端是否会忽略端点地址 (HTTPS) 中的 URL 方案
- html - Shopify - 产品标签
- python - 如何为我目录中的每个文件运行这个 python 函数?
- firebase - Firestore 安全规则,用于验证用户在应用程序中的购买
- javascript - 注册表单提交/处理后,烧瓶返回新的角度页面
- r - 是否可以更改 ggplot2 中图例元素的颜色?
- android - Android - 为什么exampleList数组列表的值消失了?
- windows - 减少 PowerShell 脚本中的重复命令