17

DataBinding hoạt động rất tốt trong dự án của tôi, Nhưng sau khi nâng cấp Android Studio 2.3 ngay hôm nay. Run 'ứng dụng' thất bại vì lỗi sau:DataBinding không hoạt động sau khi nâng cấp Android Studio 2.3

Error:(15, 40) Error: package com.javan.myrecorder.databinding not exist. 
import com.javan.myrecorder.databinding.FragmentEventsBinding; 
:app:compileMockDebugJavaWithJavac FAILED 

Tôi chỉ nâng cấp phòng thu android và không thay đổi bất cứ điều gì. tất cả các plugin là mới nhất! Bây giờ câu hỏi của tôi là, tại sao xảy ra lỗi này và làm thế nào tôi có thể giải quyết nó? bất kỳ trợ giúp được chào đón!

Tiếng Anh không phải là tiếng mẹ đẻ của tôi; xin vui lòng xin lỗi bất kỳ lỗi nào về phía tôi.


EDIT1

Giống như dự án android googlesamples/android-architecture

  • git checkout todo-databinding
  • và sau đó chạy ./gradlew assembleDebug để xây dựng, xây dựng không thành công vì lỗi sau:

complete log of build


EDIT2 Tôi đã cố định vấn đề này bằng cách làm theo Data Binding broke after upgrade to Gradle 2.3.

trong build.gradle(app) thêm

apply plugin: 'com.android.application' 
apply plugin: 'com.neenbedankt.android-apt' 

..balabala 

dependencies { 
    apt 'com.android.databinding:compiler:2.3.0' 
} 

một số tập tin trong dự án của tôi:

gradle-wrapper.properties

#Mon Mar 06 10:59:04 CST 2017 
distributionBase=GRADLE_USER_HOME 
distributionPath=wrapper/dists 
zipStoreBase=GRADLE_USER_HOME 
zipStorePath=wrapper/dists 
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 

@petrnohejl @George Núi @ Sa-ZAD Prasla, Cảm ơn bạn!

+0

Tôi có một vấn đề tương tự với android.databinding.PropertyChangeRegistry. Nó cho tôi một lỗi trong câu lệnh import và tôi không thể biên dịch dự án. Khi tôi quay trở lại Build Tools 2.2.3, nó hoạt động. Tôi nghĩ rằng có cái gì đó sai trái với dữ liệu ràng buộc trên 2.3. – petrnohejl

+0

Bạn có thấy bất kỳ lỗi nào khác không? –

+0

Ngoài ra, bạn có gì khác trong cấu hình của mình, chẳng hạn như apt? –

Trả lời

14

android-apt và do đó sử dụng apt đã không được chấp nhận nữa kể từ Android Studio 2.2.
Tiếp theo android-apt migration guide, thay vì thêm dòng sau vào build.gradle của bạn:

dependencies { 
    annotationProcessor 'com.android.databinding:compiler:2.3.0' 
} 

Nếu bạn đang sử dụng Kolin, thay vì sử dụng:

apply plugin: 'kotlin-kapt' 

dependencies { 
    kapt 'com.android.databinding:compiler:2.3.0' 
} 
+0

không hoạt động, lỗi vẫn đang diễn ra. tại sao ? –

+0

Nó hoạt động cho tôi khi ngoài sự thay đổi này, tôi cũng hạ cấp phiên bản gradle xuống 2.3.0 phụ thuộc { classpath 'com.android.tools.build:gradle:2.3.0' } – Tushar

0

Hai điều Hoàn nguyên lại gradel-wrapper.properties bạn distributionUrl để "https://services.gradle.org/distributions/gradle-2.14.1-all.zip" Thay đổi phiên bản gradle classpath lên phiên bản trước " 'com.android.tools.build:gradle:2.2.3' "

PS Chạy ngay lập tức sẽ ngừng hoạt động trên ADT với phiên bản gradle cũ hơn.

+0

Hi @ Sa-Zad Prasla, Hoàn nguyên trở lại phiên bản gradle của tôi là công việc, nhưng không phải là giải pháp tốt nhất, Cảm ơn bạn đã trả lời. –

2

vấn đề này được đưa ra trong một cảnh báo rằng rất khó để nhìn thấy trong số tất cả các lỗi:

Cảnh báo: Sử dụng plugin không tương thích cho việc xử lý chú thích: android-apt. Điều này có thể dẫn đến hành vi không mong muốn.

Nếu bạn xóa apt, ràng buộc dữ liệu hoạt động.

+1

thêm 'apt 'com.android.databinding: compiler: 2.3.0'' vào build.gradle. và bây giờ mọi thứ đều ổn, các công trình chạy ngay lập tức. là phiên bản của trình biên dịch liên kết dữ liệu gây ra lỗi? –

1

Ràng buộc dữ liệu cũng đã bị phá vỡ đối với chúng tôi sau khi cập nhật lên Android Studio v2.3. Plugin GoLang Bind không thể tạo thư viện .aar các tệp

Sự cố của chúng tôi được giải quyết thông qua kết hợp phiên bản GoMobile "+ eb90329 Mar 7 2017" và plugin GoBind hoàn nguyên về phiên bản "0.2.6" (mặc dù phiên bản hiện tại là "0.2.8")

Cập nhật GoMobile:

$ go get -u -x golang.org/x/mobile/cmd/gomobile 
    $ gomobile init -x 

Revert Gobind plugin trong build.gradle:

plugins { 
    id "org.golang.mobile.bind" version "0.2.6" 
    } 

Giải pháp này đang làm việc trên các hệ thống với phiên bản đi 1.7.1 và 1.8 cũng như Android Các phiên bản Studio 2.1.2, 2.2.3 và 2.3.

2

Tôi cũng đã phải đối mặt với cùng một vấn đề. Tôi đã sử dụng ButterKnife và Dagger !!

Giải Quyết như sau

1) Di chuyển từ cấp ứng dụng tập tin gradle:

áp dụng plugin: 'android-apt' hoặc áp dụng plugin: 'com.neenbedankt.android-apt'

2) Di chuyển từ tập tin gradle cấp dự án:

classpath 'com.neenbedankt.gradle.plugins: android-apt: 1.8'

3) Và chỉ cần thay đổi "khuynh hướng annotationProcessorchange" như phụ thuộc sau:

apt 'com.jakewharton: butterknife-biên dịch: 8.5.1, apt "com.google.dagger: dao găm-biên dịch: 2,5"

Để :

annotationProcessor 'com.jakewharton: butterknife-biên dịch: 8.5.1, annotationProcessor "com.google.dagger: dao găm-biên dịch: 2,5"

0

tôi cũng vừa tải về phiên bản mới nhất của studio android 2.3 .3, bởi vì tôi đã gặp lỗi tương tự trong phiên bản 2.2.3 tức là Lỗi: Không thể giải quyết: com.android.databinding: compiler: 2.2.3, ngay cả trong phiên bản mới nhất, tôi đã nhận được lỗi tương tự, tôi đã kiểm tra cấu trúc dự án, Trong Tệp> Cấu trúc dự án> Project, phiên bản Plugin Android vẫn là 2.2.3, tôi đã đổi nó thành 2.3.3 và quá trình xây dựng thành công và mọi thứ đều hoạt động trơn tru.

0

tôi giải quyết vấn đề này bằng cách thay đổi phiên bản của tôi về gradle tới:

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

Kể từ khi tôi đang sử dụng Android Studio 3.0.1

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