I have an android project which utilizes GridLayout in most of its menus and screens. The problem however is that GridLayout is supported from API 14 and onwards.
Since I want to make the application available to older version of android as well, I tried to use Android's own Support Library GridLayout which adds support up to API 7. This was exactly what I was looking for, however I cannot for the life of me get it to work. I have tried all of these explanations and ideas:
and more...
No matter what I do, how I do it or what IDE I use (whether Eclipse ADT or Android Studio), it always gives me an error in the Layout XML along the lines of:
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
Edit: For reference this is what I'm using to create the support gridlayout (taken directly from the android sample programs):
<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>
What could I possibly be doing wrong that none of the above solutions work? Is there something I'm missing, maybe there's a problem with my original code?
Any help is appreciated
Try using Gradle, and in your build.gradle file add the following section at the end:
dependencies {
implementation 'com.android.support:gridlayout-v7:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
}
Then execute assembleDebug gradle task.
With Android Studio:
Go in the build.gradle and add:
compile 'com.android.support:appcompat-v7:18.0.+'
in your dependencies.
Sync your project by clicking the icon on the left of AVD manager. It will implement the library
And try again
With Eclipse try this: Gridview v7 support for older api android.support.v7.widget.Gridlayout failed to instaniate
Refer from http://developer.android.com/tools/support-library/features.html#v7-gridlayout, you should import gridlayout as a eclipse project, then add it as an library project into your project, make sure the build path has included the jar.
In my case I fixed it setting:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" />
in the gridlayout_v7 project manifest file.
来源:https://stackoverflow.com/questions/18506055/android-support-v7-widget-gridlayout-cannot-get-it-to-work