2016-02-18 20 views
6

Występuje następujący błąd podczas kompilowania mojej aplikacji na Androida z włączonym ProGuard.Konflikt między powiązaniem danych Androida i Guava powoduje błąd ProGuard

Warning: library class android.databinding.tool.util.SourceCodeEscapers$1 
    extends or implements program class com.google.common.escape.CharEscaper 
Warning: library class android.databinding.tool.util.SourceCodeEscapers$JavaCharEscaper 
    extends or implements program class com.google.common.escape.ArrayBasedCharEscaper 
Warning: library class android.databinding.tool.util.SourceCodeEscapers$JavaCharEscaperWithOctal 
    extends or implements program class com.google.common.escape.ArrayBasedCharEscaper 
Warning: there were 3 instances of library classes depending on program classes. 
     You must avoid such dependencies, since the program classes will 
     be processed, while the library classes will remain unchanged. 
     (http://proguard.sourceforge.net/manual/troubleshooting.html#dependency) 

Wydaje się, że jest to spowodowane przez konflikt między Android data binding i guawy. Moja aplikacja zależy od Guava (com.google.guava: guava: 18.0) i włączono powiązanie danych. To appears, że powiązanie danych ma jakąś wewnętrzną zależność od Guava i to powoduje problem z ProGuard.

Używam najnowszej wersji beta gradle (2.0.0-beta5), więc być może problem jest z tym związany.

+1

Mam dokładnie ten sam problem !!!! Ten sam wynik dziennika jak powyżej i przy użyciu tej samej wersji gradle. tak frustrujący –

Odpowiedz

11

Więc udało mi się zbudować dodając to do PROGUARD: -dontwarn android.databinding.** -keep class android.databinding.** { *; }

które nie sądzę, jest całkiem dobrym rozwiązaniem, aby po prostu zignorować te zajęcia, ale myślę, że po prostu trzeba czekać na aktualizację od Google. Po dodaniu tego do proguard byłem w stanie zbudować apk release, ale to się zawieszało, myślałem, że nadal jest proguardem, ale znalazłem inne błędy w moim kodzie.

+2

Udało mi się uciec, dodając po prostu '-dontwarn android.databinding.tool.util. **' do mojego pliku ProGuard. – Benjamin

Powiązane problemy