2013-07-19 3 views
6

Я пытаюсь перейти от Intellij Idea 12 к Android Studio 0.2.1 В настоящее время мой проект андроида настроен с помощью maven-android-plugin. Я использую actionbarsherlock как зависимость apklib.Android Studio Pre Dexing не удается

Когда я пытаюсь построить проект с Android Studio это терпит неудачу на этапе предварительного Dexing с

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. 

Однако только зависимость к xpp3 от ActionBarSherlock, и если вы посмотрите на структуру проекта вы видите, что он имеет «предоставленный» объем. Поэтому, по-моему, это не должно быть предварительно деоксировано или вообще включено в apk.

Вы сделали подобные наблюдения? Или вы получили андроид-maven-проект с зависимостью actionbarsherlock для сборки в андроид-студии? Любые намеки о том, как получить эту работу с андроида студии оценили :)

С уважением Фрэнк

+0

Как вы добавляете зависимость библиотек поддержки в свой проект? – maclir

+0

Использование Maven: ' com.google.android опорно-v4 ' – Frank

+0

Вы не хотите использовать андроид студии с Gradle системой сборки? – maclir

ответ

0

У меня была такая же проблема. Эта структура работает для меня в конце концов:

Копирование ABS в проект:

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

Project/settings.gradle:

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

проекта/библиотеки/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 
    } 
} 

Проект/Модуль/сборка:

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

Я нашел проблему. Это не имеет ничего общего с андроид-студией или с панелью действий, но с другой зависимостью apklib, которая неправильно заявила о наличии зависимостей от xpp3 и xmlParserApis с областью «компиляции», где она должна быть «предоставлена».

Идея 12 не имела проблем с этим, но андроид-студия/идея 13 превью кажется более строгим.

Простое изменение области применения в структуре проекта решает проблему.

+0

+1. Исправлена ​​проблема, изменяя pom.xml зависимости на «предоставленный». Исключения не работают. – mingfai

+0

Есть ли что-нибудь, что я могу сделать, если я не могу изменить грудь зависимости? – Janusz

+0

Некоторые из моих библиотек включены из локальных файлов jar. И банда xpp3 уже включена как «предоставлена». После игры вокруг кажется, что его нужно вручную удалить и снова импортировать как «предоставленный», чтобы заставить его работать. – Robert

-1

Просто удалите QName.class из банки xpp3.

+0

Почему вы отказываетесь от моего ответа? Это самая смелая вещь, потому что xpp3.jar полностью нарушен в этом отношении. В качестве альтернативы, вы можете исправить ошибки xpp ... – anselm

Смежные вопросы