2016-10-26 1 views
2

Appの実行中にこのタイプのエラーが発生しました。java.lang.NoSuchMethodError:Landroid/support/v4/view/KeyEventCompatHoneycombクラスのstaticメソッドisCtrlPressed(Landroid/view/KeyEvent;); Zです。

私のコードはサポートライブラリ24.2.0(LinuxオペレーティングシステムのAndroidスタジオ)で動作していますが、Windowsオペレーティングシステムでこのコードを実行するとエラーが発生します。その解決策としてサポートライブラリを25.0.0にアップグレードし、それは解決されますが、以下に述べるエラーが発生しました。

compileSdkVersion = 25 
buildToolsVersion = '25.0.0' 
supportLibraryVersion = '25.0.0' 
targetSdkVersion = 25 

E/UncaughtException: java.lang.NoSuchMethodError: No static method isCtrlPressed(Landroid/view/KeyEvent;)Z in class Landroid/support/v4/view/KeyEventCompatHoneycomb; or its super classes (declaration of 'android.support.v4.view.KeyEventCompatHoneycomb' appears in /data/app/com.xxx/base.apk:classes23.dex) 
at android.support.v4.view.KeyEventCompat$HoneycombKeyEventVersionImpl.isCtrlPressed(KeyEventCompat.java:120) 
at android.support.v4.view.KeyEventCompat.isCtrlPressed(KeyEventCompat.java:197) 
at android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:532) 
at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:57) 
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:315) 
at com.android.internal.policy.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2310) 
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4127) 
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4089) 
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642) 
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695) 
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661) 
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3787) 
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669) 
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3844) 
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642) 
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695) 
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661) 
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669) 
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642) 
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5922) 
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5896) 
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5857) 
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3434) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)` 

答えて

0

この問題は解決しました。 buildToolVersion、CompileSdkVersion、targetSdkVersionがサポートライブラリと一致していることを確認してください。私はエラーを得た以下の構成で

compileSdkVersion = 24 
buildToolsVersion = '24.0.2' 
targetSdkVersion = 24 
supportLibraryVersion = '24.2.0' 

だから、私は

compileSdkVersion = 25 
buildToolsVersion = '25.0.0' 
targetSdkVersion = 25 
supportLibraryVersion = '25.0.1' 

に更新し、それは私の問題を解決しています。メジャーリリースのバージョンと一致する必要があります。

+1

はメジャーリリースバージョンと一致する必要があります –

+0

Linuxで同じ問題が発生しているので、ソリューションを拡張してください。あなたは、すべてのバージョンが同じでなければならないことを示唆していますか?これにより、テキストを編集テキストに入力するのを防ぐことができます – Mat

+0

こんにちは@Mat、私はあなたが今すぐ見ることができるように私の答えを更新しました。それがあなたを助けてくれますか? –

関連する問題