2012-12-12 21 views
2

這是我的資源文件res/layout/input.xml。 My.application - 我的Android程序的名稱在android中創建軟鍵盤時出錯

<my.application.android.inputmethodservice.KeyboardView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/keyboard" 
     android:layout_alignParentBottom="true" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     /> 

Android的軟鍵盤在此創建:

public View onCreateInputView() { 
     mInputView = (KeyboardView) getLayoutInflater().inflate(R.layout.input, 
       null); 
     Keyboard keyboard = new Keyboard(this, R.xml.qwerty); 
     mInputView.setKeyboard(keyboard); 
     mInputView.setEnabled(true); 
     mInputView.setPreviewEnabled(true); 
     mInputView.setOnKeyboardActionListener(this); 
     return mInputView; 
    } 

應用編譯沒有錯誤。當我把我的軟鍵盤;在任何Android應用程序,我得到一個錯誤:

12-12 09:07:39.183: E/AndroidRuntime(25341): FATAL EXCEPTION: main 
12-12 09:07:39.183: E/AndroidRuntime(25341): android.view.InflateException: Binary XML file line #21: Error inflating class my.application.android.inputmethodservice.KeyboardView 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:698) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at application.my.Keyb.onCreateInputView(Keyb.java:59) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.inputmethodservice.InputMethodService.updateInputViewShown(InputMethodService.java:1073) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.inputmethodservice.InputMethodService.showWindowInner(InputMethodService.java:1428) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.inputmethodservice.InputMethodService.showWindow(InputMethodService.java:1403) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.inputmethodservice.InputMethodService$InputMethodImpl.showSoftInput(InputMethodService.java:424) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.inputmethodservice.IInputMethodWrapper.executeMessage(IInputMethodWrapper.java:188) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:40) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.os.Looper.loop(Looper.java:137) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.app.ActivityThread.main(ActivityThread.java:5039) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at java.lang.reflect.Method.invokeNative(Native Method) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at java.lang.reflect.Method.invoke(Method.java:511) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at dalvik.system.NativeStart.main(Native Method) 
12-12 09:07:39.183: E/AndroidRuntime(25341): Caused by: java.lang.ClassNotFoundException: Didn't find class "my.application.android.inputmethodservice.KeyboardView" on path: /data/app/application.my-1.apk 
12-12 09:07:39.183: E/AndroidRuntime(25341): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.view.LayoutInflater.createView(LayoutInflater.java:552) 
12-12 09:07:39.183: E/AndroidRuntime(25341): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
12-12 09:07:39.183: E/AndroidRuntime(25341): ... 18 more 
+0

''找不到類「my.application.android .inputmethodservice.KeyboardView「''?? – 2012-12-12 05:23:08

+0

你有沒有在清單中定義你的活動? –

+0

你的包名是什麼?它看起來與你在XML中使用的不同,從你的LogCat:'at application.my.Keyb.onCreateInputView(Keyb.java:59)'。 – Sam

回答

1

在manifext文件試試這個

<activity android:label="@string/app_name" android:name="my.application.android.inputmethodservice.KeyboardView"> 

你並不需要完全限定類名。此外,如果您正在使用Eclipse並重命名一個包,請轉至Project - > Clean並讓它清理修復引用等項目,如果有任何內容被破壞。

+0

我不相信'KeyboardView'是一個活動,我相信它是一個視圖。 – Sam

+0

我認爲它只是活動,因爲它會導致java.lang.ClassNotFoundException。 –

+0

我同意sam的評論。 – 2012-12-12 05:29:02

1

試試這個在manifext文件

<service 
      android:name="SoftKeyboard" 
      android:permission="android.permission.BIND_INPUT_METHOD" > 
      <intent-filter> 
       <action android:name="android.view.InputMethod" /> 
      </intent-filter> 
+0

並且在 – user1755546

2

我想你沒有定義servce和權限,粘貼在你的清單文件

<service android:name="SoftKeyboard" 
       android:permission="android.permission.BIND_INPUT_METHOD"> 
      <intent-filter> 
       <action android:name="android.view.InputMethod" /> 
      </intent-filter> 
      <meta-data android:name="android.view.im" android:resource="@xml/method" /> 
     </service> 
+0

之前完成並且之前完成 – user1755546