Intereting Posts
Почему это НЕ вызывает сбои? Я обновляю пользовательский интерфейс из другого потока Преобразование растрового изображения в GrayScale в Android Android тройная буферизация – ожидаемое поведение? Как обрабатывать вызовы в AudioTrack из jni без сбоев? Покупка Android-приложений – RESULT_ITEM_UNAVAILABLE Google Maps API v2 Android добавляет форму, которая может быть выбрана в качестве маркера Android: SQLiteException: не ошибка на всех устройствах Android получить имя пользователя и пароль Gmail от менеджера аккаунта IQ Пользовательский поставщик не признан Можете ли вы удалить приложение для Android-магазина и использовать имя пакета? Обслуживание изображений через контент-провайдера в Android Чтение сообщения NDEF из тега NFC из приложения для Android Почему я получаю сообщение об ошибке при попытке использовать DisplayMetrics в Android? Как я могу определить разделы Android-устройства из оболочки? Установите согласованный стиль для всех EditText (например)

Пользовательская клавиатура Android. Следующие классы не могли быть созданы:

Я создал пользовательскую клавиатуру для своего приложения. Вы можете увидеть код для моей клавиатуры ниже. Я получаю сообщение об ошибке в xml viewer Аналогичный вопрос задан Android – Неподдерживаемый сервис: аудио Но никто не ответил.

Код для моей пользовательской клавиатуры

public class KeyboardViewExtend extends KeyboardView implements KeyboardView.OnKeyboardActionListener { private SymjaBase _parent = null; private Keyboard _myKeyboard = null; public KeyboardViewExtend(Context c, AttributeSet atts, int defStyle) { super(c, atts, defStyle); // Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse if (!isInEditMode()) { _parent = (SymjaBase)c; } init(c); } public KeyboardViewExtend(Context c, AttributeSet atts) { super(c, atts); // Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse if (!isInEditMode()) { _parent = (SymjaBase)c; } init(c); } private void init(Context c) { setOnKeyboardActionListener(this); setEnabled(true); setPreviewEnabled(true); setFocusable(false); setFocusableInTouchMode(false); setBackgroundColor( Color.BLACK ); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 0); lp.gravity = Gravity.BOTTOM; setLayoutParams(lp); makeKeyboardView(); } 

Ошибка в xml Graphic Viewer

 The following classes could not be instantiated: - org.matheclipse.android.KeyboardViewExtend (Open Class, Show Error Log) See the Error Log (Window > Show View) for more details. Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse java.lang.UnsupportedOperationException: Unsupported Service: audio at com.android.layoutlib.bridge.android.BridgeContext.getSystemService(BridgeContext.java:448) at android.inputmethodservice.KeyboardView.<init>(KeyboardView.java:376) at android.inputmethodservice.KeyboardView.<init>(KeyboardView.java:279) at org.matheclipse.android.KeyboardViewExtend.<init>(KeyboardViewExtend.java:35) at sun.reflect.NativeConstructorAccessorImpl.newInstance0( at sun.reflect.NativeConstructorAccessorImpl.newInstance( at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( at java.lang.reflect.Constructor.newInstance( at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:413) at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:170) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:746) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) at android.view.LayoutInflater.rInflate(LayoutInflater.java:718) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:372) 

Пожалуйста, помогите мне с этим.

См. Этот вопрос и ответы: Android – Неподдерживаемый сервис: аудио

Короче: это ошибка источника android. Но я нашел решение, как это исправить.

Используйте KeyboardViewFix качестве замены KeyboardView :

 public class KeyboardViewFix extends KeyboardView { public static boolean inEditMode = true; @TargetApi(21) // Build.VERSION_CODES.L public KeyboardViewFix(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(inEditMode ? new ContextWrapperInner(context) : context, attrs, defStyleAttr, defStyleRes); } public KeyboardViewFix(Context context, AttributeSet attrs, int defStyleAttr) { super(inEditMode ? new ContextWrapperInner(context) : context, attrs, defStyleAttr); } public KeyboardViewFix(Context context, AttributeSet attrs) { super(inEditMode ? new ContextWrapperInner(context) : context, attrs); } public static class ContextWrapperInner extends ContextWrapper { Context base; public ContextWrapperInner(Context base) { super(base); this.base = base; } public Object getSystemService(String name) { return Context.AUDIO_SERVICE.equals(name) ? null : base.getSystemService(name); } } } 

Одна заметка: при запуске своего приложения перед любым другим кодом вам нужно установить KeyboardViewFix.inEditMode = false; Или вы можете получить некоторые ошибки.