android.support.v7.widget.GridLayout无法让它工作

时间:2013-08-29 08:39:53

标签: android grid-layout android-support-library android-gridlayout

我有一个在大多数菜单和屏幕中使用GridLayout的android项目。然而问题是从API 14及以后版本支持GridLayout。

由于我想让该应用程序也可用于旧版Android,我尝试使用Android自己的支持库GridLayout,这增加了对API 7的支持。 这正是我所寻找的,但是我不能为我的生活让它发挥作用。我尝试了所有这些解释和想法:

  1. Android's official instructions
  2. Solution 1
  3. Solution 2
  4. Solution 3
  5. Solution 4
  6. Solution 5
  7. 以及更多......

    无论我做什么,我是怎么做的,或者我使用的是什么IDE(无论是Eclipse ADT还是Android Studio),它总是在布局XML中给我一个错误:

    The following classes could be instantiated:  - android.support.v7.widget.GridLayout
    
    With either one of these exceptions showing in the error log:
    
    1. android.content.res.Resources$NotFoundException: Could not resolve value 0x7F080000
    2. java.lang.classnotfoundexception: android.support.v7.gridlayout.R$dimen
    

    编辑:作为参考,这是我用来创建支持gridlayout(直接从android示例程序中获取):

    <android.support.v7.widget.GridLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/blue"
        android:padding="10dip"
        app:columnCount="4"
        >
        <TextView
            android:text="@string/string_test"
        />
        <EditText
            app:layout_gravity="fill_horizontal"
            app:layout_column="0"
            app:layout_columnSpan="4"
        />
        <Button
            android:text="@string/button_test"
            app:layout_column="2"
        />
    </android.support.v7.widget.GridLayout>
    

    如果上述解决方案都不起作用,我可能做错了什么?有什么我想念的,也许我的原始代码有问题吗?

    感谢任何帮助

5 个答案:

答案 0 :(得分:50)

尝试使用Gradle,并在build.gradle文件中添加以下部分:

dependencies {
  compile 'com.android.support:gridlayout-v7:25.2.0'
  compile 'com.android.support:appcompat-v7:25.2.0'
}

然后执行assembleDebug gradle任务。

答案 1 :(得分:4)

使用Android Studio:

  • 进入build.gradle并添加:

    compile 'com.android.support:appcompat-v7:18.0.+'
    

    在您的依赖项中。

  • 单击AVD管理器左侧的图标,同步项目。它将实现库

  • 再试一次

使用Eclipse尝试:Gridview v7 support for older api android.support.v7.widget.Gridlayout failed to instaniate

答案 2 :(得分:2)

请参阅http://developer.android.com/tools/support-library/features.html#v7-gridlayout,您应该将gridlayout导入为eclipse项目,然后将其作为库项目添加到项目中,确保构建路径包含jar。

答案 3 :(得分:1)

在我的情况下,我修复了它的设置:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" />

在gridlayout_v7项目清单文件中。

答案 4 :(得分:1)

对于当前稳定的1.0.0版: 要添加对GridLayout的依赖关系,必须将Google Maven存储库添加到项目中。 在您的应用或模块的build.gradle文件中添加所需工件的依赖项:

dependencies {
    implementation "androidx.gridlayout:gridlayout:1.0.0"
}