Разбор описания сеанса ICE4j на Android

Я пытаюсь использовать jitsi/ice4j на Android, но у меня возникли проблемы сNullPointerExceptionв зависимости, а именно jitsi/jain-sip, jitsi-oss-only. Это происходит при попытке проанализировать описание сеанса в классе.

По этому поводу есть аналогичный вопрос: Ice-sdp-parse-Exception . Кто-то нашел переменную, экземпляр которой не создан ни в одном из двух конструкторов. Это подтверждается.

После добавления строки, которая должна исправить NPE и некоторые дополнительные функции, были построены зависимости и все суперзависимости (java-sdp-nist-bridge и Ice4j). Дело в том, что ошибка сохраняется. Кроме того, дополнительныйprintlnэтого не происходит. Итак, я проверил поля с отражением во время выполнения, и кажется, что:

  1. Поля суперкласса не соответствуют источнику, который я редактировал. В Android два статических поля, определенные какConcurrentHashMapэто есть на Android. Map<String, Integerссылка, которая была нулевой (исходная проблема), внезапно становитсяHashtableтакже. На рабочем столе типы полей соответствуют тем, что я вижу в исходных файлах.

    Поля на Android:

      protected java.util.Hashtable gov.nist.core.LexerCore.currentLexer
protected java.lang.String gov.nist.core.LexerCore.currentLexerName
protected gov.nist.core.Token gov.nist.core.LexerCore.currentMatch
public static final int gov.nist.core.LexerCore.ALPHA
static final char gov.nist.core.LexerCore.ALPHADIGIT_VALID_CHARS
static final char gov.nist.core.LexerCore.ALPHA_VALID_CHARS
public static final int gov.nist.core.LexerCore.AND
public static final int gov.nist.core.LexerCore.AT
public static final int gov.nist.core.LexerCore.BACKSLASH
public static final int gov.nist.core.LexerCore.BACK_QUOTE
public static final int gov.nist.core.LexerCore.BAR
public static final int gov.nist.core.LexerCore.COLON
public static final int gov.nist.core.LexerCore.DIGIT
static final char gov.nist.core.LexerCore.DIGIT_VALID_CHARS
public static final int gov.nist.core.LexerCore.DOLLAR
public static final int gov.nist.core.LexerCore.DOT
public static final int gov.nist.core.LexerCore.DOUBLEQUOTE
public static final int gov.nist.core.LexerCore.END
public static final int gov.nist.core.LexerCore.EQUALS
public static final int gov.nist.core.LexerCore.EXCLAMATION
public static final int gov.nist.core.LexerCore.GREATER_THAN
public static final int gov.nist.core.LexerCore.HAT
public static final int gov.nist.core.LexerCore.HT
public static final int gov.nist.core.LexerCore.ID
public static final int gov.nist.core.LexerCore.LESS_THAN
public static final int gov.nist.core.LexerCore.LPAREN
public static final int gov.nist.core.LexerCore.L_CURLY
public static final int gov.nist.core.LexerCore.L_SQUARE_BRACKET
public static final int gov.nist.core.LexerCore.MINUS
public static final int gov.nist.core.LexerCore.NULL
public static final int gov.nist.core.LexerCore.PERCENT
public static final int gov.nist.core.LexerCore.PLUS
public static final int gov.nist.core.LexerCore.POUND
public static final int gov.nist.core.LexerCore.QUESTION
public static final int gov.nist.core.LexerCore.QUOTE
public static final int gov.nist.core.LexerCore.RPAREN
public static final int gov.nist.core.LexerCore.R_CURLY
public static final int gov.nist.core.LexerCore.R_SQUARE_BRACKET
public static final int gov.nist.core.LexerCore.SAFE
public static final int gov.nist.core.LexerCore.SEMICOLON
public static final int gov.nist.core.LexerCore.SLASH
public static final int gov.nist.core.LexerCore.SP
public static final int gov.nist.core.LexerCore.STAR
public static final int gov.nist.core.LexerCore.START
public static final int gov.nist.core.LexerCore.TILDE
public static final int gov.nist.core.LexerCore.UNDERSCORE
public static final int gov.nist.core.LexerCore.WHITESPACE
protected static final java.util.Hashtable gov.nist.core.LexerCore.globalSymbolTable
protected static final java.util.Hashtable gov.nist.core.LexerCore.lexerTables

Поля на рабочем столе, обратите внимание наdummyFieldдобавлено поле:

      public static final int gov.nist.core.LexerCore.START
public static final int gov.nist.core.LexerCore.END
public static final int gov.nist.core.LexerCore.ID_NO_WHITESPACE
public static final int gov.nist.core.LexerCore.ID
public static final int gov.nist.core.LexerCore.SAFE
public static final int gov.nist.core.LexerCore.WHITESPACE
public static final int gov.nist.core.LexerCore.DIGIT
public static final int gov.nist.core.LexerCore.ALPHA
public static final int gov.nist.core.LexerCore.BACKSLASH
public static final int gov.nist.core.LexerCore.QUOTE
public static final int gov.nist.core.LexerCore.AT
public static final int gov.nist.core.LexerCore.SP
public static final int gov.nist.core.LexerCore.HT
public static final int gov.nist.core.LexerCore.COLON
public static final int gov.nist.core.LexerCore.STAR
public static final int gov.nist.core.LexerCore.DOLLAR
public static final int gov.nist.core.LexerCore.PLUS
public static final int gov.nist.core.LexerCore.POUND
public static final int gov.nist.core.LexerCore.MINUS
public static final int gov.nist.core.LexerCore.DOUBLEQUOTE
public static final int gov.nist.core.LexerCore.TILDE
public static final int gov.nist.core.LexerCore.BACK_QUOTE
public static final int gov.nist.core.LexerCore.NULL
public static final int gov.nist.core.LexerCore.EQUALS
public static final int gov.nist.core.LexerCore.SEMICOLON
public static final int gov.nist.core.LexerCore.SLASH
public static final int gov.nist.core.LexerCore.L_SQUARE_BRACKET
public static final int gov.nist.core.LexerCore.R_SQUARE_BRACKET
public static final int gov.nist.core.LexerCore.R_CURLY
public static final int gov.nist.core.LexerCore.L_CURLY
public static final int gov.nist.core.LexerCore.HAT
public static final int gov.nist.core.LexerCore.BAR
public static final int gov.nist.core.LexerCore.DOT
public static final int gov.nist.core.LexerCore.EXCLAMATION
public static final int gov.nist.core.LexerCore.LPAREN
public static final int gov.nist.core.LexerCore.RPAREN
public static final int gov.nist.core.LexerCore.GREATER_THAN
public static final int gov.nist.core.LexerCore.LESS_THAN
public static final int gov.nist.core.LexerCore.PERCENT
public static final int gov.nist.core.LexerCore.QUESTION
public static final int gov.nist.core.LexerCore.AND
public static final int gov.nist.core.LexerCore.UNDERSCORE
protected static final java.util.concurrent.ConcurrentHashMap gov.nist.core.LexerCore.globalSymbolTable
protected static final java.util.concurrent.ConcurrentHashMap gov.nist.core.LexerCore.lexerTables
protected java.util.Map gov.nist.core.LexerCore.currentLexer
protected java.lang.String gov.nist.core.LexerCore.dummyField
protected java.lang.String gov.nist.core.LexerCore.currentLexerName
protected gov.nist.core.Token gov.nist.core.LexerCore.currentMatch
static final char gov.nist.core.LexerCore.ALPHA_VALID_CHARS
static final char gov.nist.core.LexerCore.DIGIT_VALID_CHARS
static final char gov.nist.core.LexerCore.ALPHADIGIT_VALID_CHARS
  1. я еще добавила манекенStringполе, оно отсутствует на Android и присутствует на рабочем столе.

Я использую одну и ту же зависимость на настольном компьютере и Android, я редактировал ее несколько раз. Я использую Maven для создания настольного приложения и Gradle в Android Studio.

Почему на Android код выполняется по-другому? Отражение используется в модуле, но не в отношенииLexerCore, по крайней мере, я не нашел его использования.

Спасибо за ваше время.

0 ответов

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