2016-04-27 5 views
0

Мое приложение дает NoClassDefFoundError для версий sdk 19 или ниже. я имел в моем Gradleandroid: NoClassDefFoundError для android 4.4 и ниже

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 
    defaultConfig { 
     applicationId "com.idg.mail" 
     minSdkVersion 14 
     targetSdkVersion 23 
     multiDexEnabled = true 
    } 

Теперь я попытался изменить его

compileSdkVersion 19 
    buildToolsVersion "23.0.1" 
    defaultConfig { 
     applicationId "com.idg.gatcamail" 
     minSdkVersion 19 
     targetSdkVersion 19 
     multiDexEnabled = true 
    } 

я изменил в app-> module settings - android - sdk, а также. С этими изменениями я построил проект, но все же он дает такую ​​же ошибку на моем android 4.4 и работает на более высоких версиях.

Класс - это класс, определенный в коде, где я обрабатываю сетевые операции.

Как я могу сделать отладку этого вопроса

+1

Для того, какой класс у Вас есть исключение? –

+0

его класс java, который я определил, который в основном выполняет задание получения данных с сервера – png

+0

Возможно, это также вызвано опцией 'multiDexEnabled'. Вы уверены, что он должен быть установлен в true и что такое зависимости? –

ответ

2

Я почти уверен, что это multidex вопрос. Если он работает правильно на sdk 21 - это проблема с несколькими приложениями.

Вот официальная информация: Multidex

Если вы используете собственную реализацию класса Application, он должен расширить класс MultiDexApplication. Также требуется флаг градации. Если вы не используете собственный класс приложения, просто добавьте запись, указанную в манифесте, - это описано в документации.

Edit: Почти забыл - вы, чтобы добавить зависимость, multidex обеспечивается с этой библиотекой: compile 'com.android.support:multidex:1.0.1'

+0

@ Tuff, да, вы можете –

+0

У меня уже были флаги градации, но класс приложения не был изменен. Как это работает на> sdk-21. С этим изменением он работал над обеими версиями .. но как он работал раньше на более высоких версиях. – png

+0

@preetha Multidex - проблема Dalvik, на Android 5+ есть ART вместо Dalvik. Таким образом, api 21+ не существует предела метода 64k :) – 3mpty

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