2017-07-12 15 views
7

Tôi có dự án đang hoạt động.Dừng dự án làm việc với các bản vẽ vector sau khi cập nhật build.gradle trên API <21

  • minSdkVersion 17
  • com.android.tools.build:gradle:2.3.3
  • gradle 4.1
  • Android Studio 3 Canary 6

tôi có trong file gradle của tôi:

defaultConfig { 
     vectorDrawables.useSupportLibrary = true 
     vectorDrawables.generatedDensities = [] 
} 

Tôi cũng gọi trong hoạt động:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) 

Ứng dụng hoạt động hoàn hảo. Bây giờ chuyển sang:

  • com.android.tools.build:gradle:3.0.0-alpha6
  • thêm vào kho google() dòng

Execute gradle clean assembleDebug.

Ứng dụng tiếp tục hoạt động trên các thiết bị có API> 20. Nhưng đối với API < 21 (trình mô phỏng android của google) bị lỗi khi khởi động ứng dụng. Tôi thấy lỗi logcat: Resources$NotFoundException: Resource ID #0x7f080058 (0x7f080058 là abc_vector_test có thể rút).

Tại sao?

UPD 2017/07/19: Nó đã được cố định và công bố vào com.android.tools.build:gradle:3.0.0-alpha7

+0

Bạn nên nộp một lỗi nếu chưa được mở trong https://issuetracker.google.com/issues/new?component=190923 – Androiderson

+0

Xong: https://issuetracker.google.com/issues/63646848 –

Trả lời

0

Plugin Gradle từ phiên bản 3 sử dụng AAPT mới, có một số lỗi.
Sau khi đọc một số vấn đề trên theo dõi lỗi, tôi đã phát hiện ra rằng Gradle có lựa chọn cho toàn vô hiệu hóa AAPT2: android.enableAapt2=false

Cũng từ ghi chú phát hành để alpha5:

AAPT2. We are continuing to stabilize AAPT2 which enables incremental resource processing. If your build fails due to resource processing issue, please send us a bug report. To temporarily disable AAPT, set android.enableAapt2=false in your gradle.properties file.
Roboelectric is currently not compatible with AAPT2

7

Tôi thêm vào gradle.properties dòng

android.enableAapt2=false 

và nó giải quyết được lỗi của tôi.

UPD 2017/07/19: Nó đã được cố định và công bố vào com.android.tools.build:gradle:3.0.0-alpha7

+1

Làm việc cho tôi. – AndroidRuntimeException

+0

Bạn có thể giải thích làm thế nào bạn có được giải pháp đó? – Androiderson

+0

@Androiderson, tôi hỏi cùng một câu hỏi trong kênh điện tín t.me/android_ru và DeKaNszn cho tôi câu trả lời này, bạn có thể thấy câu trả lời của mình bên dưới. –

0

Tôi đang phải đối mặt với cùng một vấn đề, hạ cấp Android Studio để trước phiên bản canary5 và viết thông tin sau trong build.gradle

buildscript { 
    ... 
    dependencies { 
     classpath 'com.android.tools.build:gradle:3.0.0-alpha5' 
    ... 
Các vấn đề liên quan