Вход в 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'

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

Другие вопросы по тегам