解决办法:
1.定义命名空间,
private static String NAMESPACE_ANDROID = "http://schemas.android.com/apk/res/android";
2.在继承GridView的构造方法中增加下代码
//防止在api 11之前出错
columnNum = attrs.getAttributeIntValue(NAMESPACE_ANDROID,"numColumns",2);
3.在使用到getNumColumns()的地方替换成columnNum ;
注意:使用该方式,在布局文件中写GridView布局时,属性android:numColumns="2"必须设固定值,不可使用auto_fit,否则获取的列数将会为0;