Lỗi bản dựng sau khi nâng cấp Android Studio 3.2.1


75

Tôi đang xây dựng một dự án mẫu từ Udacity. Điều này đã hoạt động tốt cho đến nay, nhưng sau khi nâng cấp lên Android Studio 3.2.1, tôi gặp phải lỗi bản dựng bên dưới.

Phiên bản Gradle: 4.6

Link dự án: 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

Làm thế nào tôi có thể sửa chữa nó?


Chào mừng đến với SO. Vui lòng thêm thông tin chi tiết về phiên bản gradle bạn đang sử dụng và kho lưu trữ nào bạn có trong dự án của mình bằng cách thêm root build.gradle vào câu hỏi của bạn? Điều đó sẽ rất tuyệt.
ʍѳђ ઽ ૯ ท

@Mohsen Tôi đã thêm liên kết vào dự án Udacity.

Các gradle có vẻ khá cũ: classpath 'com.android.tools.build:gradle:2.2.3'. Bạn đã thử classpath 'com.android.tools.build:gradle:3.2.1'hoặc cập nhật các phụ thuộc chưa? Ngoài ra, sử dụng implementationthay vì compile.
ʍѳђ ઽ ૯ ท

Đã làm điều đó. Vẫn lỗi như vậy.

3
Đã tìm thấy giải pháp: stackoverflow.com/a/50290877/7103964 Thêm google repo vào tất cả các dự án đã khắc phục sự cố của tôi.

Câu trả lời:


164

Đối với bản cập nhật Android Studio 3.2.1

Chỉ cần thêm google()vào cấp độ gốcbuild.gradle

buildscript {
    repositories {
        google()   //  <--here
        jcenter()
    }
 }

allprojects {
    repositories {
        google()   //  <-- here
        jcenter()
    }
}

và thấy điều kỳ diệu - lỗi đã biến mất.


4
Tôi đã có jcenter()và thêm google()sau đó để sửa lỗi.
Daniel

2
Cảm ơn bạn đã đề cập đến vị trí chính xác để thêm "google ()"
Meenohara

2
Câu trả lời xuất sắc
Fatih TAN

1
Ok, điều này thực sự đã sửa nó, nhưng ai đó có thể giải thích tại sao không?
Rodrigo Recio

1
tôi có thể hỏi, làm thế nào trên thế giới mà bạn biết về nó? IOW, tôi cũng có thể học những thứ như vậy ở đâu?
Lior

8

gradlePhiên bản dự án khá cũ:

classpath 'com.android.tools.build:gradle:2.2.3'

Và bạn đang sử dụng Android Studio v3.2.1 vì vậy, hãy cập nhật gradle:

classpath 'com.android.tools.build:gradle:3.2.0' // or 3.2.1 maybe

Ngoài ra, như bạn có thể thấy, nó đang tìm kiếm một số gói trong:

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

Có nghĩa là bạn có thể đã quên thêm google()làm kho lưu trữ cấp cao nhất. Chỉ cần thêmgoogle()

vào kho của bạn trong thư mục gốc của bạn build.gradle.


6

Để giải quyết vấn đề này

Trước tiên, hãy tải xuống tệp Jar bị thiếu từ liên kết bên dưới. Tôi thấy bạn đang thiếu phiên bản 3.2.1-4818971

https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar

Chuyển cấu trúc thư mục của bạn từ Android sang Project.

FolderStructure

Bây giờ điều hướng đến thư mục libs bên trong thư mục app - build. (Nếu thư mục libs không tồn tại, bạn có thể tạo nó bằng cách nhấp chuột phải vào thư mục ứng dụng - chọn Mới - chọn Thư mục.)

LibsFolder

Dán tệp đã tải xuống.jar vào bên trong thư mục libs. Nhấp chuột phải vào tệp jar và ở dưới cùng nhấp vào Thêm làm thư viện. Thao tác này sẽ giải quyết việc thêm các tệp triển khai ('libs / library_name.jar') trong build.gradle [Bạn không phải nhập thủ công tệp này vào tệp xây dựng của mình].

AddAsLibrary

Mọi thứ sẽ ổn sau khi bạn đồng bộ hóa sau khi thực hiện các bước trên. Đây là liên kết nguồn đến giải pháp này: https://developer.android.com/studio/command-line/aapt2#download_aapt2

Hãy cho tôi biết nếu bạn gặp phải bất kỳ vấn đề nào khác trong khi thực hiện các thao tác trên.


3
Tại sao Google không gói phần mềm này trong kho của họ? Android dev exp là điều tồi tệ nhất tôi đã
mike

6

Vâng, như d4rkcon đã nói tải xuống https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar Nhưng bạn có thể làm đơn giản hơn - chỉ cần đặt tệp này vào thư mục mà Andoid Studio đang cố gắng tìm nó. Nếu bạn không có các thư mục như /tools/build/aapt2/3.2.1-4818971/ trong thư mục AndroidSDK, chỉ cần tạo chúng và sau đó đặt tệp aapt2-3.2.1-4818971-windows.jar vào.


Cảm ơn, điều này đã làm việc cho tôi. Tôi đã phải thêm 3 cấp độ của thư mục. Ngoài ra có 3 hương vị của tệp jar. Trên máy mac, nó là: dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/… (thay thế osx hoặc linux cho các cửa sổ trong tệp jar)
Vicky T

3

Thêm kho lưu trữ của Google trong build.gradle của bạn (Dự án: xxxxx)

allprojects {
    repositories {
        google()
    }
}

2

xóa bộ nhớ cache gradle

rm -rf $HOME/.gradle/caches/

và đồng bộ hóa lại để tải xuống tất cả các phụ thuộc


1
vâng, đây là giải pháp, sau khi nâng cấp gradle, phải đồng bộ hóa lại tất cả các phụ thuộc để chạy lệnh này thành công:
react

1

Thay đổi build.gradle của bạn như sau.

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'
}

0

thêm google () vào tập lệnh xây dựng của bạn> kho lưu trữ thêm google trên tất cả các dự án> kho lưu trữ

sử dụng triển khai thay thế cho từ khóa biên dịch, cũng trên filetree của bạn.

VÍ DỤ.

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'

0

Đối với bản cập nhật Android Studio 3.6.3: chỉ cần thêm thẻ google maven trong bản buildcript và tất cả các kho dự án trong tệp build.gradle của tệp dự án sẽ giải quyết được vấn đề.

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
}

Bạn có phiền cập nhật câu trả lời của mình với thông tin bổ sung không? Điều gì khác biệt trong cấu hình này với các câu trả lời khác trước đó? Các phương pháp trước đó không hoạt động trong Android Studio 3.6.3? Những phần cụ thể nào trong cấu hình của bạn là chìa khóa cho giải pháp? Nó chủ yếu là các maven {}cấu hình?
Jeremy Caney

có, các câu trả lời khác không giải quyết được vấn đề trên bản cập nhật android studio mới nhất.
Abeni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.