XmlPullParserException: метаданные не начинаются с тега метода ввода (пользовательская клавиатура Android) - PullRequest
0 голосов
/ 26 апреля 2018

Во время работы над другим проектом я заметил всплывающее исключение в logcat для предыдущей тестовой клавиатуры, которую я сделал (основываясь на разделе «Продолжение» этого ответа ).Он установлен на моем телефоне, но это был не тот проект, которым я сейчас занимался.

XmlPullParserException: метаданные не начинаются с тега метода ввода

Iеще раз проверил клавиатуру, и она все еще работает, так что это не кажется большой проблемой.Однако я не люблю оставлять ошибки, если я могу помочь.

Я не смог найти другие вопросы SO, связанные с этим, но я нашел, как он вызывается в исходном коде * 1012.* для InputMethodInfo:

String nodeName = parser.getName();
if (!"input-method".equals(nodeName)) {
    throw new XmlPullParserException(
            "Meta-data does not start with input-method tag");
}

Что может вызвать эту ошибку?

Дополнительный код

InputMethodService

public class WodeInputMethodService extends InputMethodService implements ImeContainer.OnSystemImeListener {

    @Override
    public View onCreateInputView() {
        LayoutInflater inflater = getLayoutInflater();
        ImeContainer jianpan = (ImeContainer) inflater.inflate(R.layout.jianpan_yangshi,
                null, false);
        jianpan.showSystemKeyboardsOption("ᠰᠢᠰᠲ᠋ᠧᠮ");
        jianpan.setOnSystemImeListener(this);

        return jianpan;
    }

    @Override
    public InputConnection getInputConnection() {
        return getCurrentInputConnection();
    }

    @Override
    public void onChooseNewSystemKeyboard() {
        InputMethodManager im = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        if (im == null) return;
        im.showInputMethodPicker();
    }
}

Ошибка, вероятно, скрывается глубже этого (как в пользовательском представлении клавиатуры или библиотечной клавиатуре *1027*, от которой она унаследована), но из-за большого количества кода я задаю основной вопроспервый.Если я найду ответ или более соответствующий код, я опубликую обновление.

Трассировка стека

04-26 10:30:13.466 855-880/? A/InputMethodManagerService: Unable to load input method ComponentInfo{net.studymongolian.jianpan/net.studymongolian.jianpan.WodeInputMethodService}
    org.xmlpull.v1.XmlPullParserException: Meta-data does not start with input-method tag
        at android.view.inputmethod.InputMethodInfo.<init>(InputMethodInfo.java:162)
        at com.android.server.InputMethodManagerService.buildInputMethodListLocked(InputMethodManagerService.java:2732)
        at com.android.server.InputMethodManagerService$MyPackageMonitor.onSomePackagesChanged(InputMethodManagerService.java:554)
        at com.android.internal.content.PackageMonitor.onReceive(PackageMonitor.java:402)
        at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:863)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.os.HandlerThread.run(HandlerThread.java:61)

Примечания

К сожалению, это не вопрос MCVE, потому что я не могу воспроизвести проблему.Я также не знаю точную часть кода, которая вызывает проблему.Я все еще задаю вопрос, потому что кто-то, знакомый с ошибкой, может описать конкретную ситуацию, которая ее вызывает.

...