2015-03-09 26 views
7

Tôi đã tải xuống và thêm xstream-1.4.8.jar vào dự án Android Studio của mình. Khi tôi xây dựng dự án nó hoạt động tốt nhưng khi tôi cố gắng chạy nó tôi nhận được lỗi sau từ cửa sổ Gradle Xây dựng:Không thể thêm phụ thuộc vào tệp XStream vào dự án Android Studio

Information:Gradle tasks [:app:assembleDebug] 
:app:preBuild UP-TO-DATE 
:app:preDebugBuild UP-TO-DATE 
:app:compileDebugNdk UP-TO-DATE 
:app:checkDebugManifest 
:app:preReleaseBuild UP-TO-DATE 
:app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE 
:app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE 
:app:prepareDebugDependencies 
:app:compileDebugAidl UP-TO-DATE 
:app:compileDebugRenderscript UP-TO-DATE 
:app:generateDebugBuildConfig UP-TO-DATE 
:app:generateDebugAssets UP-TO-DATE 
:app:mergeDebugAssets UP-TO-DATE 
:app:generateDebugResValues UP-TO-DATE 
:app:generateDebugResources UP-TO-DATE 
:app:mergeDebugResources UP-TO-DATE 
:app:processDebugManifest UP-TO-DATE 
:app:processDebugResources UP-TO-DATE 
:app:generateDebugSources UP-TO-DATE 
:app:compileDebugJava UP-TO-DATE 
:app:preDexDebug 
UNEXPECTED TOP-LEVEL EXCEPTION: 
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000) 
    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472) 
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406) 
    at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388) 
    at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251) 
    at com.android.dx.command.dexer.Main.processClass(Main.java:704) 
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673) 
    at com.android.dx.command.dexer.Main.access$300(Main.java:83) 
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602) 
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) 
    at com.android.dx.command.dexer.Main.processOne(Main.java:632) 
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510) 
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280) 
    at com.android.dx.command.dexer.Main.run(Main.java:246) 
    at com.android.dx.command.dexer.Main.main(Main.java:215) 
    at com.android.dx.command.Main.main(Main.java:106) 
...while parsing com/thoughtworks/xstream/mapper/LambdaMapper.class 
1 error; aborting 
Error:Execution failed for task ':app:preDexDebug'. 

com.android.ide.common.process.ProcessException: org.gradle .process.internal.ExecException: Xử lý 'lệnh' C: \ Program Files \ Java \ jdk1.8.0_25 \ bin \ java.exe '' hoàn thành với giá trị thoát khácThông tin: BUILD FAILED Thông tin: Tổng thời gian: 14.974 secs Thông tin: 1 lỗi Thông tin: 0 cảnh báo Thông tin: Xem đầu ra hoàn chỉnh trong bảng điều khiển

Tôi đã xem các câu trả lời có liên quan ở đây và không có giải pháp được đề xuất nào phù hợp với tôi.

Xin cảm ơn trước.

Trả lời

15

XStream 1.4.8 được biên dịch cho Java 8 và phiên bản Android mới nhất hỗ trợ là Java 7.

Một giải pháp là sử dụng XStream 1.4.7, hoạt động với Android và một giải pháp khác để tải xuống XStream 1.4.8 nguồn và tự biên dịch chúng. Trong trường hợp đó, bạn sẽ phải xóa LambdaMapper.java và có thể một số lớp có vấn đề khác.

Ngoài ra, bạn có thể gặp sự cố với các phiên bản khác nhau của bộ phân tích cú pháp xmlpull được sử dụng. Trong trường hợp đó, bạn có thể loại trừ một từ biên dịch.

compile('com.thoughtworks.xstream:xstream:1.4.7') { 
    exclude group: 'xmlpull', module: 'xmlpull' 
} 
+1

Xin chào, tôi đã làm việc đó ngay sau khi đăng câu hỏi. Tôi hiện đang sử dụng XStream 1.4.7. Cảm ơn bạn rất nhiều vì đã giúp đỡ – Sam

+0

Bây giờ, họ đã phát hành [1.4.10-java7] (https://github.com/x-stream/xstream/issues/49) Nó không chứa bất kỳ nội dung nào của Java 8. – OneWorld

+0

Plugin Android cho Gradle 3.0.0 dường như không chấp nhận lệnh loại trừ mà bạn đã đăng. Nó hoạt động trên 2.3.3 mặc dù. Xem https://stackoverflow.com/questions/47335142/android-gradle-plugin-3-0-0-multiple-dex-files-define-lorg-xmlpull-mxp1-mxparse – OneWorld

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