Во время работы над другим проектом я заметил всплывающее исключение в 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, потому что я не могу воспроизвести проблему.Я также не знаю точную часть кода, которая вызывает проблему.Я все еще задаю вопрос, потому что кто-то, знакомый с ошибкой, может описать конкретную ситуацию, которая ее вызывает.