搞了一上午终于解决了,分享一下:
问题重现: 当Activity跳转到另一个Activity时,卡顿后白屏到重新启动app 错误提示如下:
java.lang.NoSuchMethodError: No static method dispatchUnhandledKeyEventPre(Landroid/view/View;Landroid/view/KeyEvent;)Z in class Landroid/support/v4/view/ViewCompat; or its super classes (declaration of 'android.support.v4.view.ViewCompat' appears in /data/app/...
at android.support.v7.app.AppCompatDelegateImpl.dispatchKeyEvent(AppCompatDelegateImpl.java:1162)
at android.support.v7.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:2529)
at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:570)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6331)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6199)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5592)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5645)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5611)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5769)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5619)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5826)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5592)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5645)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5611)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5619)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5592)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5645)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5611)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5802)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:5972)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3271)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2799)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2790)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3248)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:143)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:363)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
查阅了很多 都没有一个在csdn或简书上找到相关的答复 github上到是不少 都不是自己想要的:
问题解决
引的包产生了冲突 查看自己build.gradle文件下的
我的是因为之前引入的是这样的 版本号适配了androidx 导致的 看我整个项目都没有去适配androidx所以不需要把版本提那么高的如果想用下面的高版本 请将dependencies下的com.android.support版本改为androidx
api 'com.jakewharton:butterknife:9.0.0' annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0'
api 'com.github.bumptech.glide:glide:4.9.0'
下面改小了这三个的版本号后成功了 如果有用请点个赞 谢谢
compileSdkVersion 28
buildToolsVersion '28.0.3'
minSdkVersion 23
targetSdkVersion 28
dependencies
api 'com.android.support:appcompat-v7:28.0.0-alpha3'
api 'com.android.support:design:28.0.0-alpha3'
api 'com.android.support:recyclerview-v7:28.0.0-alpha3'
api 'com.android.support:cardview-v7:28.0.0-alpha3'
api 'com.github.bumptech.glide:glide:4.4.0'
api 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'