2016-08-19 76 views
0

我在XML文件中下面的代码:Unxepcted抛出ClassCastException从findViewById

<android.support.v7.widget.GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id = "@+id/buttonsLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity = "center" 
    app:columnCount="4" 
    app:rowCount="4" 
    app:useDefaultMargins="false" 
    > 
</android.support.v7.widget.GridLayout> 

,我动态地填补这一网格布局,所以我试图让与对象:

android.support.v7.widget.GridLayout gl = 
    (android.support.v7.widget.GridLayout)findViewById(R.id.buttonsLayout); 

哪给我以下错误:

Caused by: java.lang.ClassCastException: android.support.v7.internal.widget.TintButton cannot be cast to android.support.v7.widget.GridLayout at com.education4all.mathcoach.TaskActivity.onCreate(TaskActivity.java:134) 
at android.app.Activity.performCreate(Activity.java:4465) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2033) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104)  
at android.app.ActivityThread.access$600(ActivityThread.java:132)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157)  
at android.os.Handler.dispatchMessage(Handler.java:99)  
at android.os.Looper.loop(Looper.java:137)  
at android.app.ActivityThread.main(ActivityThread.java:4575)  
at java.lang.reflect.Method.invokeNative(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:511)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)  
at dalvik.system.NativeStart.main(Native Method) 

这很奇怪,因为此代码用于工作和苏这个错误会出现。为什么会这样?

build_gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion '21.1.2' 
    defaultConfig { 
     applicationId "com.education4all.mathcoach" 
     minSdkVersion 10 
     targetSdkVersion 22 
     versionName '1.0.2' 
     versionCode 4 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:appcompat-v7:22.0.0' 
    compile 'com.android.support:gridlayout-v7:18.0.+' 
} 
+0

您是否尝试过无效并重新启动? –

+2

听起来像你的ID搞砸了。尝试一个干净的,然后重建。 –

+0

@SwapnilMeshram没有任何帮助 – UpmostScarab

回答

0

尝试使用更高版本的支持库,即:com.android.support:appcompat-v7:22.+,清洁并尝试运行该项目。

您也可以使用最新版本的GridLayout。

相关问题