25

我有一个 android 项目,在它的大部分菜单和屏幕中都使用了 GridLayout。但问题是 API 14 及更高版本支持 GridLayout。

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

  1. 安卓官方说明
  2. 解决方案 1
  3. 解决方案 2
  4. 解决方案 3
  5. 解决方案 4
  6. 解决方案 5

和更多...

无论我做什么、如何做或使用什么 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

编辑:作为参考,这是我用来创建支持网格布局的内容(直接取自 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>

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

任何帮助表示赞赏

4

5 回答 5

52

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

dependencies {
  implementation 'com.android.support:gridlayout-v7:28.0.0'
  implementation 'com.android.support:appcompat-v7:28.0.0'
}

然后执行 assembleDebug gradle 任务。

于 2013-12-27T15:34:23.990 回答
4

使用 Android Studio:

  • 进入 build.gradle 并添加:

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

    在您的依赖项中。

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

  • 然后再试一次

使用 Eclipse 试试这个:Gridview v7 support for old api android.support.v7.widget.Gridlayout failed to instaniate

于 2013-08-29T08:52:00.423 回答
3

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

dependencies {
    implementation "androidx.gridlayout:gridlayout:1.0.0"
}
于 2020-02-19T06:20:47.817 回答
2

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

于 2014-01-09T00:45:20.397 回答
1

就我而言,我修复了它的设置:

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

在 gridlayout_v7 项目清单文件中。

于 2014-03-31T17:09:34.340 回答