Вход в Android при импорте java jar
У меня есть sampleApplication, который имеет только один класс и имя класса является Test
Ниже приведены сценарии:
Случай 1:
public class Test {
public void callme()
{
System.out.println("Inside Call me Method");
}
}
Вариант 2:
public class Test {
private static final Logger log = LoggerFactory.getLogger(Test.class);
public void callme()
{
log.info("Inside Call me Mthod using logback");
}
}
Вариант использования выглядит следующим образом:
Я должен связать этот Test.class в jar и использовать его для проекта Android. В случае 1, когда я связываю тестовый класс в jar и использую его в проекте Android... Внутри журналов приложений Android я могу видеть операторы sysout.,
Но в соответствии с практикой sysout s должны быть заменены некоторой структурой регистрации.
Итак, я попробовал сценарий2, я реализовал logback вместе с тестовым классом, связал банку и использовал в проекте Android. Сбой приложения и возникла исключительная ситуация, поскольку в Android отсутствуют зависимости slf4j, классика обратного входа и ядро обратного входа, я пытался добавить их в файл build.gradle для Android. Это все равно не помогло....
Вопрос:
Я реализовал весь функциональный код и не смог достичь ведения журнала. Есть ли способ ведения журнала?
Примечание: я знал, что в Android мы используем Android.util.Log... но это в проекте Android... но мой jar - это внешний jar, разработанный в java, который не имеет доступа к Android.util.Log.. Надеюсь, вопрос ясен..
Есть ли способ добиться регистрации... Или я должен рассмотреть вопрос о создании библиотеки Android вместо простой JAR и подключить его в Android-проекте.. Если так, каков процесс? Извините, если формулировка вопроса не ясна
3 ответа
В большом проекте моей работы мы используем SLF4j, который хорошо работает как для проекта с именем Android, так и для проектов библиотеки Java. SFL4J фактически сделал некоторые оптимизации в недавнем выпуске, чтобы работать правильно. Вы даже можете включить NOOP-версию для выпуска, которая удалит все записи журнала. Удачи.
Зависимости для добавления:
slf4jNoOp : "org.slf4j:slf4j-api:$versions.slf4j", //compile
slf4jAndroid : "org.slf4j:slf4j-android:$versions.slf4j", //release
пример использования:
private static final Logger LOGGER = LoggerFactory.getLogger(NYTApplication.class);
LOGGER.info("Info Log");
https://github.com/qos-ch/slf4j
Для меня добавление следующих зависимостей Gradle в приложении build.gradle
Работал раздел зависимостей:
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.21'
compile group: 'org.slf4j', name: 'slf4j-android', version: '1.7.21'
Если вам действительно необходимо экспортировать функциональные возможности ведения журнала, лучший способ - создать интерфейс ведения журнала, позволить пользователю реализовать его и передать экземпляр. Таким образом, они могут подключить его к любой системе ведения журналов, которую они хотят использовать.