- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Android Studio (v.2.2.3) 中收到以下堆栈跟踪:
E/InputEventSender: Exception dispatching finished signal.
E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
E/MessageQueue-JNI: java.lang.NoSuchMethodError: No static method isCtrlPressed(Landroid/view/KeyEvent;)Z in class Landroid/support/v4/view/KeyEventCompat; or its super classes (declaration of 'android.support.v4.view.KeyEventCompat' appears in /data/app/com.app.name-2/base.apk) at android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:526)
at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:319)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2276)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4020)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3982)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3680)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3737)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3713)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3874)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2208)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1849)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1840)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2185)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:143)
at android.os.Looper.loop(Looper.java:122)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
android.support.v4.view 包有一个 KeyEventCompat 类,该类有一个记录的 boolean 成员变量 isCtrlPressed .
由于我的应用程序的 View 覆盖了 AppCompatActivity,dispatchKeyEvent() 函数静态调用 KeyEventCompat.isCtrlPressed(),但该函数不存在。
我有以下 gradle 设置:
compileSdkVersion = 25
buildToolsVersion = "25.0.2"
supportLibVersion = "25.2.0"
minSdkVersion 14
targetSdkVersion = 25
具有以下依赖项:
compile "com.android.support:appcompat-v7:25.2.0"
compile "com.android.support:support-compat:25.2.0"
compile "com.android.support:support-media-compat:25.2.0"
compile "com.android.support:gridlayout-v7:25.2.0"
compile "com.android.support:support-core-utils:${rootProject.ext.supportLibVersion}"
compile "com.android.support:support-core-ui:${rootProject.ext.supportLibVersion}"
compile "com.android.support:design:${rootProject.ext.supportLibVersion}"
compile "com.android.support:recyclerview-v7:${rootProject.ext.supportLibVersion}"
compile 'com.android.support:support-v4:25.2.0'
这是 Android 错误吗?如果是这样,建议的解决方法是什么?也许尝试使用较低版本的构建工具和支持库进行编译?
最佳答案
值得注意的是,SO 问题位于 here没有解决我的问题。
我已将此问题作为 AOSP Bug # 257553 提交
java.lang.NoSuchMethodError: 类 Landroid/support/v4/view/KeyEventCompat 中没有静态方法 isCtrlPressed(Landroid/view/KeyEvent;)Z;
感谢 Codepath - Migrating To The AppCompat Library 上精彩的文章我遵循了本页上记录的事件的反向版本,以便将 AppCompat 和支持库从版本 25.2.0 降级到版本 25.1.0(是的,为了安全起见,我降级了两个版本。如果愿意,您可以尝试降级 1 个版本)。
因此,我解决该问题所采取的步骤是:
找到 appcompat-v7 SDK 文件夹并删除整个 25.2.0,在我的例子中删除 25.1.1 文件夹,因为我决定放弃两个版本;
Mac OS 用户的文件位置:
/users/[username]/Library/Android/Sdk/extras/android/m2repository/com/android/support/appcompat-v7
PC 用户的文件位置:
C:\Documents and Settiings<user>\ApPData\Local\Android\Sdk\extras\android\m2repository\com\android\support\appcompat-v7
在同一文件夹(上面步骤 2 中定义的位置)中编辑 maven-metadata.xml 文件并删除包含以下内容的两行:
<version>25.2.0</version>
<version>25.1.1</version>
降级 app/build.gradle 中的构建工具和 AppCompat 库:
buildToolsVersion '25.0.0'
supportLibVersion '25.1.0'
清理项目并重建。
更新
应该注意的是,上述解决方案适用于那些特定的库版本和构建变体。
当我更新以下构建变量后,原始错误再次返回:
buildTooleVersion '25.0.2'
supportLibVersion '25.3.0'
解决此构建变体下问题的解决方案非常简单,可以找到 here 。事实上,我认为这在所有条件下都应该是正确的答案,但我尚未在所有构建变体中对此进行测试。
总结一下引用的解决方案,应用程序的 Activity 应该子类化 android.app.Activity 类,而不是子类化 android.support.v7.app.AppCompatActivity。如果您要创建在该 Activity 中使用的自定义 View ,则自定义 View 应该是 android.support.v7.widget View 的子类。通过这样做,在 Activity 类中使用该 View 时,该 View 将继承支持功能。
关于java.lang.NoSuchMethodError : No static method isCtrlPressed(Landroid/view/KeyEvent;),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42477262/
我正在用来自JSON文件的一些数据填充Flutter中的列表。 但是,我的代码不断抛出异常"NoSuchMethodError (NoSuchMethodError: The method 'add'
通过eclipse运行Tomcat 7报错是: javax.servlet.ServletException: java.lang.NoSuchMethodError: org.eclipse.jdt
这是我的错误行: 这是我的代码: 最佳答案 final jobs= json.decode(response.body)['name_database_table']; 关于mobile - NoSu
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visit the help center
我已经被这个错误困扰了几个小时。。我的pom.xml。应用程序未启动。所有的Spring框架依赖于相同的版本,但仍然得到相同的错误。。更新。MVN依赖的结果:树。看起来这里一切都很好。
我得到: NoSuchMethodError: com.foo.SomeService.doSmth()Z 我是否正确理解这个'Z'意味着doSmth()方法的返回类型是 boolean 值?如果为
我在 Speed 类中引用 PlayerUtil.getMovementSpeed(player);,在我的 PlayerUtil 类中,我将方法定义为: public static double g
我得到: NoSuchMethodError: com.foo.SomeService.doSmth()Z 我是否正确理解这个 'Z' 意味着 doSmth() 方法的返回类型是 boolean 值?
我在使用 Spark 和 Scala 时遇到了一个奇怪的错误。我有一段代码声明了一个变量: var offset = 0 这会导致以下异常: java.lang.NoSuchMethodError:
我已经成功实现了 reflectionEquals 方法,其中包含一个排除字段列表。 return EqualsBuilder.reflectionEquals(this, obj, new Str
我正在使用 Spring 框架和 Maven 开发 Java Enterprise 应用程序。我正在为此学习一门类(class),并且一直坚持集成 Hibernate JPA。当我运行项目时,它返回以
I/flutter ( 8282): The following NoSuchMethodError was thrown building Meme(dirty, state: _MemeState
运行以下代码时出现 NoSuchMethodError - 我想从 JSON url 打印出轨道标题 - 我错过了什么吗? import 'dart:async'; import 'dart:conv
我正在做 Searchview flutter 中的例子 https://github.com/MageshPandian20/Flutter-SearchView 但我想对 进行更改子项类有一个 最
尝试从Eclipse中的简单Java程序连接到Hive时出现以下错误。看起来好像连接,然后引发此错误。我可以通过beeline在本地连接到Hive Thrift服务器,而不会出现问题。 两个libth
当我向安全资源发出请求时,会发生NoSuchMethodError。 基于基于Spring Boot 1.4.4的Grails 3.2.5的项目 AppConfig: @EnableWebSecuri
这个问题已经有答案了: Differences between Exception and Error (11 个回答) 已关闭 7 年前。 我的印象是 Exception 非常适合捕获所有可能的异常
祝大家有美好的一天!我使用 google Vision API,当我在 IntelliJ Idea 中运行我的程序时,它工作得很好,但是当我编译 jar 文件时,它在处理照片时给出错误 java.la
我一直在为这个问题苦苦挣扎。我正在开发一个包含很多包的 netbeans java 项目,起初我更改了 gui,但是当我运行代码时,它没有反射(reflect)任何更改,即使我在保存、清理、清理和编译
我一直在寻找问题的解决方案,但没有得到足够的答案。 我正在开发 Bukkit插件的更新系统。因此,我必须自己编写这些类的代码。但我一直想从 debug(String) 调用一个方法(具体来说: ano
我是一名优秀的程序员,十分优秀!