16

У меня есть проект андроида, который использует GridLayout в большинстве своих меню и экранов. Однако проблема заключается в том, что GridLayout поддерживается API 14 и далее.android.support.v7.widget.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

и Mor е ...

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

Edit: для справки, это то, что я использую для создания поддержки GridLayout (взятый непосредственно из андроида примеров программ):

<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

Поместите свой код xml – nsvir

+0

@nsvir - добавлен мой XML-код, хотя ничего особенного в нем я не использовал, я использовал пример кода, заданный android – user475680

ответ

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

+0

Код, который я использую, работает без градиента (при попытке создать его через eclipse it показывает ошибку и ничего не делает), я видел это решение, но так как я не использую gradle, это нежизнеспособно – user475680

+0

Попробуйте мое редактирование для Eclipse – nsvir

+0

уже пробовал ... не работает для меня – user475680

38

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

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

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

+1

Это должен быть принятый ответ. Импорт vcom appcompat и позже в ADT (Eclipse) не будет работать. Инструменты сборки больше не хранят ADT-совместимые библиотеки, а извлечение из .aar - это слишком много работы - подумайте о переходе на систему сборки Android Studio и Gradle. – milosmns

2

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

+0

Отличный ответ, спасибо – Hamidreza

1

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

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

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

Смежные вопросы