2015-12-11 3 views
1

У меня есть некоторые проблемы, включая 4 библиотеки в проекте. Microsoft Face Detection/Recognition, Службы Google Play, libUVCamera и Firebase.Слишком много библиотек в Android-проекте?

Чтобы упростить задачу, я создал проект, называемый агрегацией библиотек. Единственное, что у него есть, это те четыре библиотеки, которые к нему добавлены. Всякий раз, когда есть все 3 библиотеки, все работает нормально. Добавление четвертого (которое когда-либо было) приведет к следующей ошибке:

Ошибка: выполнение выполнено для задачи ': app: transformClassesWithDexForDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2

Некоторые люди на переполнение стека порекомендовали, что существует слишком много методов (65k максимальная), по-видимому, «minifyEnabled правда» помогли бы. Я попытался очистить проект, но ничего не получилось. Я ищу любые идеи о том, как я мог бы продвигаться к решению проблемы. Я также пробовал multiDex ... без успеха.

Удивительно, что разработчики Android справляются с этой проблемой в целом? как вы обычно работаете с большими библиотеками в студии Android?

Ключ: требуется 1 мин. 28 секунд для сборки ... если это полезно.

Вот мой файл build.gradle: Любая помощь будет принята с благодарностью.

build.gradle (Module: приложение)

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 23 
buildToolsVersion "23.0.2" 

defaultConfig { 
    applicationId "com.example.benjaminlize.libraryaggregation" 
    minSdkVersion 18 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
packagingOptions { 
    exclude 'META-INF/LICENSE' 
    exclude 'META-INF/LICENSE-FIREBASE.txt' 
    exclude 'META-INF/NOTICE' 
    } 
} 

dependencies { 
compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.android.support:design:23.1.1' 
compile 'com.google.android.gms:play-services:8.3.0' 
compile 'com.firebase:firebase-client-android:2.4.0' 
compile 'com.microsoft.projectoxford:face:0.5.0' 
compile project(':libuvccamera') 
} 

С уважением!

+0

Кажется, вы не включили multidex или вы удалили его после тестирования. Держи его там в граде. http://developer.android.com/intl/es/tools/building/multidex.html. Какая 4-я библиотека вы добавили? – cgr

+0

'compile 'com.google.android.gms: play-services: 8.3.0'' никогда не включайте все игровые сервисы, только то, что вам нужно. – EpicPandaForce

ответ

1

Я думаю, что вопрос compile 'com.google.android.gms:play-services:8.3.0'.

Google нарушил сервисы воспроизведения в отдельные библиотеки, которые вы можете включить отдельно, а не все вместе. Попробуйте включить только те разделы, которые вам действительно нужны.

https://developers.google.com/android/guides/setup

Я думаю, что все игровые услуги в настоящее время имеет множество функций.

+0

спасибо, действительно, я не знал об этом списке. Очень полезно спасибо! это сжало пространство моих библиотек ... Я потратил дни, пытаясь отладить это спасибо –

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