我有一个在大多数菜单和屏幕中使用GridLayout的android项目。然而问题是从API 14及以后版本支持GridLayout。
由于我想让该应用程序也可用于旧版Android,我尝试使用Android自己的支持库GridLayout,这增加了对API 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>
如果上述解决方案都不起作用,我可能做错了什么?有什么我想念的,也许我的原始代码有问题吗?
感谢任何帮助
答案 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"
}