2016-05-05 2 views
1

Я пытаюсь использовать две модифицированные библиотеки POI Apache. У каждого libray есть модификации для правильной работы на android 4. + и 5. +.Загрузить классы из двух версий библиотеки в зависимости от версии Android

Мне нужно импортировать определенный класс конкретной библиотеки в зависимости от версии Android.

Например:

Android 4. + версии:

import org.apache.poi.xssf.usermodel.XSSFWorkbook; из compile files('libs/aa-poi-3.10-min-0.1.5.jar')

Android 5. + версии:

import org.apache.poi.xssf.usermodel.XSSFWorkbook; из compile files('libs/poi-3.12-android-a.jar')

Как я мог это сделать? Благодаря

ответ

1

Определить два аромата

productFlavors { 
    android4plus { 
     minSdkVersion 14 
    } 
    android5plus { 
     minSdkVersion 21 
    } 
} 

Теперь вы можете установить различные зависимости на вкус

android4plusCompile files('libs/aa-poi-3.10-min-0.1.5.jar') 
android5plusCompile files('libs/poi-3.12-android-a.jar') 

В результате, вы можете переключаться между вкусами в процессе разработки и будет иметь два файла APK для распространения.

+0

Могу ли я переключаться между службами в том же файле APK? Например, во время выполнения решайте, используйте ли один класс, который импортирует android4plus или android5plus. – Hanzo

+0

Нет, это как две ветви, каждая ветвь строит в отдельный APK. Во время выполнения у вас есть только одна ветвь, загружаемая в память. –

+0

Если вы хотите иметь обе версии во время выполнения, укажите для них отдельное имя пакета, например 'org.apache.poi.xssf.usermodel.android4.XSSFWorkbook' и' org.apache.poi.xssf.usermodel.android5.XSSFWorkbook' например. –

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