2013-07-19 38 views
6

Tôi đang cố gắng chuyển từ Intellij Idea 12 sang Android Studio 0.2.1 Hiện tại dự án Android của tôi được thiết lập với maven-android-plugin. Tôi sử dụng actionbarsherlock như một phụ thuộc apklib.Android Studio Pre Dexing không thành công

Khi tôi cố gắng xây dựng các dự án với Android Studio nó không thành công ở giai đoạn tiền Dexing với

Error:Android Pre Dex: [xpp3-1.1.4c.jar] trouble processing "javax/xml/namespace/QName.class": 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] Ill-advised or mistaken usage of a core class (java.* or javax.*) 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] when not building a core library. 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] This is often due to inadvertently including a core library file 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] in your application's project, when using an IDE (such as 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] Eclipse). If you are sure you're not intentionally defining a 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] core class, then this is the most likely explanation of what's 
Error:Android Pre Dex: [xpp3-1.1.4c.jar] going on. 

Tuy nhiên, sự phụ thuộc duy nhất xpp3 là từ ActionBarSherlock và nếu bạn nhìn vào cấu trúc dự án bạn thấy rằng nó có phạm vi "được cung cấp". Vì vậy, theo ý kiến ​​của tôi, điều này không nên được dexed trước hoặc đưa vào apk tất cả.

Bạn đã thực hiện các quan sát tương tự chưa? Hay bạn đã nhận được một dự án android-maven với sự phụ thuộc actionbarsherlock để xây dựng trong studio android? Bất kỳ gợi ý về cách để làm việc này với studio android được đánh giá cao :)

Trân Frank

+0

Bạn làm cách nào để thêm phụ thuộc vào thư viện hỗ trợ vào dự án của mình? – maclir

+0

Sử dụng maven: ' com.google.android hỗ trợ-v4 ' – Frank

+0

Bạn không muốn sử dụng các hãng Android với hệ thống xây dựng gradle? – maclir

Trả lời

0

tôi đã cùng một vấn đề. Cấu trúc này làm việc cho tôi cuối cùng:

Sao chép ABS vào dự án:

Project 
├── build.gradle 
├── Module 
│   ├── build.gradle 
│   ├── libs 
│   └── src 
├── libraries 
│   └── ABS 
│    ├── build.gradle 
│    ├── libraries 
│    ├── libs 
│    └── src 
└── settings.gradle 

dự án/settings.gradle:

include ':Module', ':libraries:ABS' 

dự án/thư viện/ABS/build.gradle:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android-library' 

dependencies { 
    compile "com.android.support:support-v4:13.0.0" 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 17 
    } 
} 

Dự án/mô-đun/build.gradle:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile "com.android.support:support-v4:13.0.0" 
    compile project(':libraries:ABS') 
} 
... 
11

Tôi đã tìm thấy sự cố. Nó không có gì để làm với android studio hoặc với sherlock actionbar nhưng với một phụ thuộc apklib mà không chính xác tuyên bố có phụ thuộc vào xpp3 và xmlParserApis với phạm vi "biên dịch", nơi nó sẽ được "cung cấp".

Ý tưởng 12 không có vấn đề với điều này nhưng android/ý tưởng 13 xem trước dường như nghiêm ngặt hơn.

Chỉ cần thay đổi phạm vi thành "được cung cấp" trong cấu trúc dự án sẽ giải quyết được vấn đề.

+0

+1. Đã khắc phục sự cố bằng cách thay đổi tệp pom.xml của phụ thuộc thành "được cung cấp". Loại trừ không hoạt động. – mingfai

+0

Tôi có thể làm gì nếu tôi không thể thay đổi phần phụ thuộc? – Janusz

+0

Một số thư viện của tôi được bao gồm trong các tệp jar cục bộ. Và xpp3 jar đã được bao gồm là "được cung cấp". Sau khi chơi xung quanh nó có vẻ như nó cần phải tự loại bỏ & tái nhập khẩu một lần nữa là "cung cấp" để làm cho nó hoạt động. – Robert

-1

Chỉ cần xóa lớp QName.class khỏi bình xpp3.

+0

Tại sao bạn lại từ chối câu trả lời của tôi? Đó là điều phải làm nhất, vì xpp3.jar hoàn toàn bị phá vỡ trong khía cạnh này. Ngoài ra, hãy đi tìm những kẻ xpp ... – anselm

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