13

Tôi vừa mới bắt đầu một dự án rất đơn giản và cố gắng sử dụng cả trình biên dịch ButterKnife và Jack, nhưng có vẻ như họ không đối phó với nhau tốt.ButterKnife không làm việc với Jack?

Gradle Plugin phiên bản: 2.2.0-alpha5

trong mô-đun của tôi build.gradle Tôi nói thêm:

compile 'com.jakewharton:butterknife:8.2.1' 
annotationProcessor 'com.jakewharton:butterknife-compiler:8.2.1' 

Và thông báo lỗi là:

Error:Execution failed for task ':app:transformJackWithJackForDebug'. 
java.lang.AssertionError: java.lang.IllegalArgumentException 

đã tôi nhớ cái gì hoặc chỉ là chúng không tương thích?

+1

Bỏ phiếu chỉ vì tiêu đề câu hỏi thật tuyệt vời !!! – JustSomeDude

Trả lời

3

Thử xóa apply plugin: 'android-apt' trong ứng dụng của bạn.

Như trong readme, nó nói:

Lưu ý: Nếu bạn đang sử dụng trình biên dịch Jack mới với phiên bản 2.2.0 hoặc mới hơn, bạn không cần plugin 'android-apt' và thay vào đó có thể thay thế apt với annotationProcessor khi khai báo sự phụ thuộc của trình biên dịch.

+0

Không, tôi chưa bao giờ thêm plugin android-apt. – Marvin

+2

điều này có thể giúp bạn https://github.com/JakeWharton/butterknife/issues/616 –

3

Nhờ mẹo của @isnotmenow, tôi đã cố gắng thay đổi phiên bản ButterKnife thành 8.1.0 và hoạt động tốt. Nhưng cả hai ngoại lệ 8.2.0 và 8.2.1 đều phàn nàn, tôi đã đăng an issue trên trang dự án.

+0

đối với tôi nó cũng hoạt động là hạ cấp phiên bản của ButterKnife thành '8.1.0' –

3

Dưới đây là một Jake Wharton của câu trả lời từ tương tự StackOverflow bài:

Nếu bạn đang sử dụng Jack:

  • Bỏ qua 'android-apt' cắm hoàn toàn.
  • Sử dụng annotationProcessor cho sự phụ thuộc (thay vì apt).

Tôi tin rằng bạn phải sử dụng phiên bản 2.2.0 của Android Gradle plugin mặc dù thay vì 2.1.x (hiện tại phiên bản mới nhất là 2.2.0-alpha5).

Tài liệu về Dao bơ sẽ được cập nhật cho bản phát hành tiếp theo (8.2.0) để bao gồm thông tin này.

Từ: Butterknife 8.1.0 not working with JDK 1.8 in Android Studio 2.1.2

Kiểm tra thêm: http://github.com/JakeWharton/butterknife/issues/616

Hy vọng nó sẽ giúp

6

Version 8.3.0 vừa mới được phát hành với sự hỗ trợ cho Jack.

compile 'com.jakewharton:butterknife:8.3.0' 
annotationProcessor 'com.jakewharton:butterknife-compiler:8.3.0' 
Các vấn đề liên quan