Android.support.v7.widget.GridLayout не может заставить его работать

У меня есть проект Android, который использует GridLayout в большинстве своих меню и экранов. Проблема, однако, в том, что GridLayout поддерживается с API 14 и выше.

Поскольку я хочу сделать приложение доступным и для более старой версии Android, я попытался использовать собственную библиотеку поддержки GridLayout для Android, которая добавляет поддержку вплоть до API 7. Это было именно то, что я искал, однако я не могу на всю жизнь заставить его работать. Я попробовал все эти объяснения и идеи:

  1. Android официальные инструкции
  2. Решение 1
  3. Решение 2
  4. Решение 3
  5. Решение 4
  6. Решение 5

и больше...

Независимо от того, что я делаю, как я это делаю или какую IDE я использую (будь то Eclipse ADT или Android Studio), это всегда выдает мне ошибку в Layout 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>

Что я мог сделать неправильно, что ни одно из вышеперечисленных решений не работает? Я что-то упускаю, может быть, проблема с моим исходным кодом?

Любая помощь приветствуется

Ответы

Ответ 1

Попробуйте использовать Gradle, и в вашем файле build.gradle добавьте следующий раздел в конце:

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

Затем выполните задачу сборки gradDebug.

Ответ 2

С Android Studio:

  • Перейдите в build.gradle и добавьте:

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

    в ваших зависимостях.

  • Синхронизируйте проект, щелкнув значок слева от менеджера AVD. Он будет реализовывать библиотеку

  • И попробуйте еще раз

С Eclipse попробуйте следующее: Поддержка Gridview v7 для старого api android.support.v7.widget.Gridlayout не удалось установить

Ответ 3

Обратитесь к http://developer.android.com/tools/support-library/features.html#v7-gridlayout, вы должны импортировать gridlayout в качестве проекта eclipse, а затем добавить его в качестве проекта библиотеки в свой проект, убедитесь, что путь сборки включал банку.

Ответ 4

В моем случае я установил его:

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

в файле манифеста проекта gridlayout_v7.