我正在从Udacity构建一个示例项目。到现在为止,该功能还可以正常使用,但是升级到Android Studio 3.2.1之后,我将遇到以下构建错误。
版本版本:4.6
项目链接:https://github.com/udacity/ud851-Sunshine/tree/student/S02.02-Solution-Menus
Could not find com.android.tools.build:aapt2:3.2.1-4818971**. Searched in the following locations:
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
https://jcenter.bintray.com/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
https://jcenter.bintray.com/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar Required by:
project :app
我该如何解决?
答案 0 :(得分:159)
google()
中添加build.gradle
buildscript {
repositories {
google() // <--here
jcenter()
}
}
allprojects {
repositories {
google() // <-- here
jcenter()
}
}
看看魔术-错误消失了。
答案 1 :(得分:8)
项目class MyCreateAndUpdateSerializer(serializers.ModelSerializer):
shared_users = serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all(), read_only=False)
class Meta:
model = Project
fields = [
'pk',
'user',
'data',
'model_name',
'description',
'created_at',
'date_modified',
'shared_users',
'last_modified_by'
]
的版本很旧:
gradle
您正在使用Android Studio v3.2.1,因此,请更新classpath 'com.android.tools.build:gradle:2.2.3'
:
gradle
此外,如您所见,它还在寻找以下软件包:
classpath 'com.android.tools.build:gradle:3.2.0' // or 3.2.1 maybe
这意味着您可能忘记了添加file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
作为顶层存储库。只需添加google()
到根google()
中的存储库。
答案 2 :(得分:6)
要解决此问题
首先从下面的链接下载丢失的Jar文件。我看到您缺少版本3.2.1-4818971
将文件夹结构从Android切换到Project。
现在导航到应用程序内的libs文件夹-build文件夹。 (如果libs文件夹不存在,则可以通过右键单击app文件夹-选择“新建-选择目录”来创建它。)
将downloaded.jar文件粘贴到libs文件夹中。右键单击jar文件,然后在底部单击“添加为库”。这将有助于在build.gradle中添加实现文件('libs / library_name.jar')[您不必在构建文件中手动输入此文件]。
完成上述操作后,一切都应该没事。 这是此解决方案的源链接:https://developer.android.com/studio/command-line/aapt2#download_aapt2
让我知道您在执行上述操作时是否遇到任何其他问题。
答案 3 :(得分:6)
是的,就像d4rkcon所说的那样,下载https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar 但是您可以做得更简单-只需将此文件放在Andoid Studio试图找到它的目录中即可。如果您在AndroidSDK文件夹中没有类似/tools/build/aapt2/3.2.1-4818971/的目录,则只需创建它们,然后将aapt2-3.2.1-4818971-windows.jar文件放入其中即可。
答案 4 :(得分:3)
在您的build.gradle(Project:xxxxx)中添加Google存储库
allprojects {
repositories {
google()
}
}
答案 5 :(得分:2)
清除gradle缓存
rm -rf $HOME/.gradle/caches/
并重新同步以下载所有依赖项
答案 6 :(得分:1)
按如下所示更改您的build.gradle。
android {
compileSdkVersion 26
buildToolsVersion "28.0.3"
defaultConfig {
applicationId "your package name here"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:26.1.0'
}
答案 7 :(得分:0)
在构建脚本>存储库上添加google() 在allprojects>仓库
上添加google使用实现代替compile关键字, 也在您的文件树上。
EX。
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:appcompat-v7:25.3.1'
implementation 'com.android.support:design:25.3.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:support-v4:25.3.1'
答案 8 :(得分:0)
对于Android Studio 3.6.3更新:只需在buildscript中添加google maven标记,并将所有项目存储库添加到项目文件的build.gradle文件中即可解决此问题。
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
}
}
allprojects {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}