IntelliJ et android.de soutien.v7.widget de.GridLayout
Je suis en cours d'exécution dans la difficulté à la mise en place de l'appui v7 GridLayout bibliothèque dans mon Ide de projet, ou correctement référencement dans mon code.
J'utilise actuellement la ActionBarSherlock et Facebook des bibliothèques dans mon projet, et ont mis en place le soutien GridLayout bibliothèque de la même manière (ne pas avoir de source dans le dossier src, j'ai dit à l'Ide d'utiliser le projet dir comme un pot de dossier). Tout avait l'air bien, construit et déployé à mon appareil de test, mais quand j'ai essayé de gonfler la mise en page, mon application s'est écrasé.
09-17 17:07:43.916: ERROR/AndroidRuntime(4143): FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.MainHostActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class android.support.v7.widget.GridLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2753)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2769)
at android.app.ActivityThread.access$2500(ActivityThread.java:129)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2117)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4717)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class android.support.v7.widget.GridLayout
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.decoderhq.indieshuffle.PlayerFragment.onCreateView(PlayerFragment.java:63)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:846)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1061)
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1160)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:558)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:857)
at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:251)
at com.example.MainHostActivity.onCreate(MainHostActivity.java:58)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2717)
... 11 more
Caused by: java.lang.ClassNotFoundException: android.support.v7.widget.GridLayout in loader dalvik.system.PathClassLoader[/data/app/com.example.MyApp.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
at android.view.LayoutInflater.createView(LayoutInflater.java:466)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
... 30 more
IntelliJ est aussi, me disant que mon GridLayout "n'est pas autorisé ici" dans le concepteur XML, je n'arrive pas à trouver l'aide dans les différents moteurs de recherche. Ma mise en page (tronquée pour la longueur) est comme suit:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:grid="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.GridLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
grid:columnCount="3"
grid:rowCount="2"
android:id="@+id/player_grid">
<!-- previous artist label button/view -->
<LinearLayout
android:id="@+id/prev_artist_label_layout"
android:background="@drawable/player_prev_artist_bg_full"
android:padding="10dp"
grid:layout_column="0"
grid:layout_row="0">
<TextView
android:id="@+id/prev_artist_label"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_gravity="center"
android:singleLine="true"
style="@style/PlayerArtistText"
android:ellipsize="end"/>
<ImageView
android:id="@+id/prev_artist_label_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"/>
</LinearLayout>
<!-- more cells in the grid [truncated for length] -->
</android.support.v7.widget.GridLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/player_grid">
<TextView
android:id="@+id/curr_time_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
style="@style/PlayerTimeLabels"
android:text="00:00"
android:layout_marginLeft="20dp"
android:layout_marginRight="10dp"/>
<SeekBar
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:id="@+id/seek_bar"/>
<TextView
android:id="@+id/duration_time_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
style="@style/PlayerTimeLabels"
android:text="00:00"
android:layout_marginLeft="10dp"
android:layout_marginRight="20dp"/>
</LinearLayout>
</RelativeLayout>
Coles Notes: j'ai un soutien GridLayout dans un RelativeLayout et un LinearLayout qui se trouve sur le dessus, ancré au fond de la RelativeLayout.
Le journal indique que je suis en manque une classe. Je suis en espérant que je n'avais pas mis la bibliothèque correctement, comme je ne peux pas penser à ce qu'elle pourrait être. J'espère que quelqu'un avec une certaine Ide/Android connaissance peut me pointer dans la bonne direction.
S'il vous plaît aller facile sur moi si cette question manque un peu d'info - ceci est mon premier essai à l'aide de stackoverflow à demander de l'aide.
Merci d'avance
OriginalL'auteur PANCAKES | 2012-09-17
Vous devez vous connecter pour publier un commentaire.
Ok, j'ai compris cela. Il s'avère que c'était un problème de configuration. Voici ce que j'ai fait pour configurer le soutien GridLayout de la bibliothèque, ainsi que les classes dans le code.
Mis en place un accompagnement GridLayout bibliothèque dans IntelliJ:
Ajouter importance du projet dans l'Ide:
Vous devez également ajouter une référence à l'appui v7 GridLayout fichier jar dans le projet d'appui à la libs dir.
J'espère que cela aide quelqu'un d'autre - j'ai perdu la plupart de ma journée. =|
La v7 GridLayout bibliothèque de prise en charge est destinée à apporter de l'aide pour le GridLayout à partir de l'API de niveau 12 (3.1.x), où il a été introduit, à l'API de niveau 7 (2.1.x). Cela signifie que le minimum de niveau API que vous pouvez utiliser avec cette bibliothèque est l'API de niveau 7.
que voulez-vous dire à propos de Créer un module à partir de zéro -> Suivant. Je ne pouvais pas voir ce que tu veux dire.
vous pouvez essayer d'Importer le module au lieu de Créer: - copie <sdk-les extras>/gridlayout dossier <your_project_root>/gridlayout - Fichier -> Module d'Import - Accédez au dossier copié - cliquez sur Suivant jusqu'à ce que fait et l'importation de la fenêtre est fermée. Suivez ensuite les instructions d'origine pour ajouter un module, comme la dépendance.
Oui, vous pouvez simplement importer le module, a travaillé pour moi (stackoverflow.com/a/18916738/183575).
OriginalL'auteur PANCAKES
Un peu plus simple solution:
Vous devez d'abord ajouter la dépendance à gradle de toute façon, donc une construction ouverte.gradle et
C'est ce que http://developer.android.com/tools/support-library/setup.html#
mais il ne semble pas fonctionner pleinement. Alors vous avez besoin pour faire android studio reconnaître.
après la reconstruction projet, il a commencé à travailler pour moi.
OriginalL'auteur Marcin Raczkowski
Vous devez seulement ajouter de la
support gridlayout
à vos dépendances maintenant.Puis vérifier le
README
instructions situées danssdk/extras/android/support/v7/gridlayout
. Plus particulièrement, vous devez utiliser lexmlns:app="http://schemas.android.com/apk/res-auto"
espace de noms pour certains de ces attributs.OriginalL'auteur theblang