您的位置:首页 > 移动开发 > Android开发

Android支持库版本不一致而出现的奇怪bug

2016-12-26 23:13 288 查看
错误信息如下:

12-26 23:08:15.983 1355-1355/com.example.recyclerviewtest E/InputEventReceiver: Exception dispatching input event.
12-26 23:08:15.983 1355-1355/com.example.recyclerviewtest D/AndroidRuntime: Shutting down VM

--------- beginning of crash
12-26 23:08:15.986 1355-1355/com.example.recyclerviewtest E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.recyclerviewtest, PID: 1355
java.lang.NoSuchMethodError: No static method getMatrix(Landroid/view/View;)Landroid/graphics/Matrix; in class Landroid/support/v4/view/ViewCompat; or its super classes (declaration of 'android.support.v4.view.ViewCompat' appears in /data/data/com.example.recyclerviewtest/files/instant-run/dex/slice-com.android.support-support-v4-23.4.0_6f063f634fe1c9ddbce1f9c9d7c1d57e21e3c4c6-classes.dex)
at android.support.v7.widget.RecyclerView$LayoutManager.getTransformedBoundingBox(RecyclerView.java:8100)
at android.support.v7.widget.OrientationHelper$2.getTransformedEndWithDecoration(OrientationHelper.java:402)
at android.support.v7.widget.LinearLayoutManager.recycleViewsFromStart(LinearLayoutManager.java:1275)
at android.support.v7.widget.LinearLayoutManager.recycleByLayoutState(LinearLayoutManager.java:1347)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1400)
at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1193)
at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1043)
at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java:1596)
at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2704)
at android.view.View.dispatchTouchEvent(View.java:9399)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2549)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2240)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2469)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1785)
at android.app.Activity.dispatchTouchEvent(Activity.java:2867)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2430)
at android.view.View.dispatchPointerEvent(View.java:9619)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4465)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4331)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3865)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3918)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3884)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4010)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3892)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4067)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3865)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3918)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3884)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3892)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3865)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6164)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6138
12-26 23:08:16.028 1355-1355/com.example.recyclerviewtest I/Process: Sending signal. PID: 1355 SIG: 9


此时我的gradle配置如下:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.recyclerviewtest"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:recyclerview-v7:24.2.1'
testCompile 'junit:junit:4.12'
}


由于其中的两个支持库
com.android.support:appcompat-v7:23.4.0
com.android.support:recyclerview-v7:24.2.1
不是相同的版本,所以出现了一些奇怪的错误信息。后来我把支持库改成相同的版本后,错误就消失了。

在此记录下来,希望别人在遇到相同的坑时能有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐