J'ai un projet Android qui utilise GridLayout dans la plupart de ses menus et écrans. Le problème est cependant que GridLayout est pris en charge à partir d'API 14 et au-delà.
Étant donné que je souhaite rendre l'application disponible à une ancienne version de Android également, j'ai essayé d'utiliser la propre bibliothèque de support d'Android GridLayout qui ajoute le support à l'API 7. Cette était exactement ce que je cherchais, mais je ne peux pas le faire fonctionner toute ma vie. J'ai essayé toutes ces explications et idées:
et plus...
Peu importe ce que je fais, comment je le fais ou ce que IDE j'utilise (que ce soit Eclipse ADT ou Android Studio), cela me donne toujours une erreur dans le Disposition XML selon:
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: Pour référence, voici ce que j'utilise pour créer la grille de prise en charge (prise directement à partir des exemples de programmes 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>
Que pourrais-je faire de mal si aucune des solutions ci-dessus ne fonctionne? Y a-t-il quelque chose qui me manque, peut-être qu'il y a un problème avec mon code d'origine?
Toute aide est appréciée
Essayez d'utiliser Gradle et, dans votre fichier build.gradle, ajoutez la section suivante à la fin:
dependencies {
implementation 'com.Android.support:gridlayout-v7:28.0.0'
implementation 'com.Android.support:appcompat-v7:28.0.0'
}
Exécutez ensuite la tâche gradle assembleDebug.
Avec Android Studio:
Allez dans le build.gradle et ajoutez:
compile 'com.Android.support:appcompat-v7:18.0.+'
dans vos dépendances.
Synchronisez votre projet en cliquant sur l'icône à gauche du gestionnaire AVD. Il implémentera la bibliothèque
Et essayez à nouveau
Avec Eclipse, essayez ceci: La prise en charge de Gridview v7 pour les anciennes api Android.support.v7.widget.Gridlayout n'a pas pu être lancée
Reportez-vous à http://developer.Android.com/tools/support-library/features.html#v7-gridlayout , vous devez importer gridlayout en tant que projet Eclipse, puis l'ajouter en tant que projet de bibliothèque dans votre projet, assurez-vous que le chemin de génération a inclus le bocal.
Dans mon cas, j'ai corrigé le paramètre:
<uses-sdk Android:minSdkVersion="8" Android:targetSdkVersion="18" />
dans le fichier manifeste du projet gridlayout_v7.