2016-12-16 19 views
5

Tôi đã một Ubuntu Xenial VM chạy trong OpenStack, ở đó tôi đã tải về các công cụ SDK Android mới nhất (tools_r25.2.3-linux.zip) từ https://developer.android.com/studio/index.html. Và tất cả mọi thứ được tốt cấu hình:Không thể tìm thấy mục tiêu với chuỗi băm 'android-25', mặc dù android-25 thực sự là cài đặt

  • JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  • ANDROID_HOME=<ANDROID_SDK_PATH>
  • PATH=${PATH}:${ANDROID_HOME}
  • echo "sdk.dir=<ANDROID_SDK_PATH>" > <MY_ANDROID_PROJECT_PATH>/local.properties

Nhưng khi cố gắng để thực hiện nhiệm vụ: ./gradlew clean, lỗi xảy ra:

Preparing "Install Android SDK Build-Tools 25". 
Warning: Trying to install into ${ANDROID_HOME}/build-tools/25.0.0/ but package "Android SDK Tools 25.2.4" already exists at ${ANDROID_HOME}. It must be deleted or moved away before installing into a child directory. 
Preparing "Install Android SDK Platform 25". 
Warning: Trying to install into ${ANDROID_HOME}/platforms/android-25/ but package "Android SDK Tools 25.2.4" already exists at ${ANDROID_HOME}. It must be deleted or moved away before installing into a child directory. 

FAILURE: Build failed with an exception. 

* What went wrong: 
A problem occurred configuring project ':demo'. 
> Failed to install the following SDK components: 
    [Android SDK Build-Tools 25, Android SDK Platform 25] 
    Please install the missing components using the SDK manager in Android Studio. 

Và thực sự như là nhật ký lỗi đề cập đến, tôi đã cài đặt các công cụ cần thiết. Chạy $ANDROID_HOME/bin/sdkmanager --list hiển thị các gói đã cài đặt của tôi:

Installed packages: 
    Path      | Version | Description      | Location 
    -------      | ------- | -------       | ------- 
    build-tools;25.0.0   | 25.0.0 | Android SDK Build-Tools 25  | build-tools/25.0.0/ 
    extras;android;m2repository | 41.0.0 | Android Support Repository, re... | extras/android/m2repository/ 
    platform-tools    | 25.0.2 | Android SDK Platform-Tools 25.0.2 | platform-tools/ 
    platforms;android-25  | 3  | Android SDK Platform 25, rev 3 | platforms/android-25/ 
    tools      | 25.2.4 | Android SDK Tools 25.2.4   | tools/ 

Điều gì có thể xảy ra ở đây? Tôi hơi nghi ngờ về đường dẫn SDK tại đây.

Trả lời

8

Chỉ xác nhận suy đoán của tôi - điều này là do thay đổi mới được thực hiện trong bản phát hành Android SDK mới nhất.

Cảm ơn Chúa, chúng ta có một cỗ máy thời gian, để chúng ta có thể quay trở lại để xem chính xác những gì đã xảy ra (không thể tìm thấy bất kỳ dấu hiệu nào từ SDK Tools Release Notes).

Hãy có một cái nhìn vào cấu trúc tập tin của ANDROID_HOME trước và sau khi thay đổi.

Trước:

android-sdk-linux 
├── SDK Readme.txt 
├── add-ons (empty) 
├── platforms (empty) 
└── tools 
    ├── a bunch of preloaded tools 
    ├── ... 
    └── ... 

Sau:

tools 
├── a bunch of preloaded tools 
├── ... 
└── ... 

Không còn add-ons hoặc platforms, chỉ có tools như thư mục gốc mới.

Sự cố: Gradle sẽ bị nhầm lẫn nếu bạn đặt $ANDROID_HOME trực tiếp vào thư mục tools hàng đầu được giải nén.

Giải pháp: Sau khi giải nén tệp SDK mới (bạn sẽ nhận được một thư mục tools), tạo một thư mục khác (ví dụ:android-sdk), và di chuyển các thư mục tools hoàn toàn bên trong trống rỗng android-sdk, sau đó thiết lập các biến môi trường như:

ANDROID_HOME=/android-sdk 
PATH=${PATH}:${ANDROID_HOME}/tools 

Nói tóm lại: KHÔNG thiết $ANDROID_HOME trực tiếp vào thư mục tools mẹ mới, quấn nó bên mẹ khác !

+0

Nói cách khác, bản cập nhật mới nhất giải quyết mọi thứ trừ khi bạn thực hiện thủ công một số dọn dẹp? Điều đó dường như không phải là một vấn đề kéo dài ... và việc di chuyển mọi thứ sẽ làm cho bản cập nhật tiếp theo trở nên bối rối hơn. Thật không may, điều này cũng xảy ra trên Windows. :( – lilbyrdie

+0

Vâng, cấu trúc tập tin này thay đổi mà chúng không đề cập đến trong ghi chú phát hành và khi người dùng tải xuống SDK và thiết lập mới (với cách cấu hình thông thường '$ ANDROID_HOME'), Đối với những người dùng khác đã có SDK và chỉ cần thực hiện cập nhật, nó sẽ không bị hỏng. Tôi gặp sự cố này chỉ vì tôi có hình ảnh docker tải xuống SDK khi xây dựng nó –

+0

Hiện tại là 16, 2017 và như một dự án mới được tạo ra, những vấn đề ngớ ngẩn này vẫn còn tồn tại.Không phải đội ngũ phần mềm mẫu giáo tại Google đọc Stackoverflow như phần còn lại của chúng ta? Tên của lập trình viên có trách nhiệm là gì? Nền tảng: cố gắng A25 trên hệ thống win10 dựa trên tất cả các cập nhật có thể – carl

0

Tôi vừa sử dụng Lỗi bắt giữ/Khởi động lại trong studio android của tôi. Nó làm việc cho tôi.

Các vấn đề liên quan