web-dev-qa-db-fra.com

Résolissons l'erreur "Impossible de trouver le style 'mapViewstyle' dans le thème actuel"

Désolé d’en poster une autre, mais il semble que nous n’ayons pas encore documenté toutes les solutions à ce problème.

Voici ce qui s'est passé: j'ai ajouté une carte, tout fonctionnait bien. J'ai ajouté un tiroir coulissant et y ai placé des boutons, puis changé le nœud racine de linéaire à relatif. Depuis lors, je reçois une erreur dans la présentation graphique de ma classe main.xml qui lit 

Styles manquants. Le bon thème est-il choisi pour cette mise en page? Utilisez la liste déroulante Thème au-dessus de la disposition pour choisir une autre disposition ou corrigez les références de style de thème. Impossible de trouver le style 'mapViewStyle' dans le thème actuel.

Le basculement du nœud racine sur linéaire et sur relatif a pour conséquence l'affichage de la carte, mais l'erreur persiste dans la présentation graphique. 

Jusqu'à présent, j'ai proposé les solutions suivantes, qui pourraient résoudre le problème dans la plupart des cas:

  1. Ajout d'un style.xml pour créer un style "mapView".
  2. Vérifié ma cible de construction est API 2.3.3 (10)
  3. Assurez-vous que <uses-library Android:name="com.google.Android.maps"/> est un nœud enfant d’Application.
  4. Nettoyer/reconstruire mon application.
  5. R. supprimé.
  6. Supprimé et reconstruit main.xml
  7. Redémarrez le serveur adb, Eclipse, mon ordinateur et mon appareil.
  8. Basculé entre Android 3.0 et Android 2.3.3 dans la présentation graphique.

Cependant, mon problème persiste. Voici ma mise en page XML.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/RelativeLayout1"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical" >


<com.google.Android.maps.MapView
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/mapview"
    style="@style/mapView"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:layout_alignParentBottom="true"
    Android:layout_alignParentLeft="true"
    Android:layout_alignParentTop="true"
    Android:apiKey="asdf" //not my real key
    Android:clickable="true" />

<!-- TODO: update the API key with release signature -->
<SlidingDrawer
    Android:id="@+id/slidingDrawer1"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:content="@+id/content"
    Android:handle="@+id/handle" >

    <Button
        Android:id="@+id/handle"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="@string/Menu" />


    <LinearLayout
        Android:id="@+id/content"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent" >

        <Button
            Android:id="@+id/about"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:text="@string/about" />

        <Button
            Android:id="@+id/record"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:text="@string/record" />

        <Button
            Android:id="@+id/start"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:text="@string/start" />

    </LinearLayout>

</SlidingDrawer>
</RelativeLayout>

Voici mon manifeste xml.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="edu.myschoolhere"
Android:versionCode="1"
Android:versionName="1.0" >

<uses-sdk Android:minSdkVersion="10" />
<uses-permission Android:name="Android.permission.INTERNET"/>
<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION"/>

<application
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name" >
    <uses-library Android:name="com.google.Android.maps"/>
    <activity
        Android:name=".GeoTagActivity"
        Android:label="@string/app_name"
        Android:theme="@Android:style/Theme.NoTitleBar" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

Si quelqu'un a une solution, s'il vous plaît faites le moi savoir. Je ferai de mon mieux pour poster en arrière si je le découvre un jour.

21
Billdr

Ma réponse est peut-être tardive, mais j'espère que cela traitera de la raison réelle et que cela pourrait être utile pour ceux qui vont chercher le même problème à l'avenir.

Ce type d'erreurs,

1. Android Google Maps Failed to find style 'mapViewStyle' in current theme
2. Failed to find style 'imageButtonStyle' in current theme 
3. Failed to find style 'editTextStyle' in current theme 
4. Failed to find style 'textViewStyle' in current theme 

Quelque chose de la liste ci-dessus peut être,

La raison ultime est,

Nous avons sélectionné le Theme indisponible pour le layout.

Cela peut causer à cause de,

  1. La theme sélectionnée n'est pas disponible dans le fichier themes.xml.
  2. La theme sélectionnée appartient à la version supérieure sdk, mais notre cible actuelle sdk est inférieure.

Ce problème arrive surtout,

  1. lorsque vous copiez l'intégralité du fichier layout et essayez de l'implémenter dans votre project. a. Vous pouvez oublier de copier le fichier themes.xml B. Vous pouvez avoir un target sdk inférieur, l'original layout créé avec un target sdk supérieur.

Les solutions à ce problème sont,

( Ouvrez et Affichez le fichier layout dans le Graphical Layout View et regardez dans le coin supérieur droit . Votre themes pour la layout a été sélectionné.)

  1. Cliquez donc sur la liste déroulante pour la sélection theme et choisissez la themes disponible en fonction de votre projet themes et targeted sdk themes. (OU)
  2. Si la variable theme est une variable custom, le cas échéant, copiez le fichier themes.xml dans votre projet à partir de la source où vous avez copié le fichier layout xml . (OU)
  3. Si la theme est sdk avail theme, si vous en avez besoin, changez votre target en fonction de votre theme sélectionnée.

Espérons que cela pourrait être utile à quelqu'un.

10

Cette solution est pour Android Studio, elle donnera peut-être une idée aussi aux utilisateurs d’Eclipse.
Chaque thème Android ne convient pas à toutes les vues. Pour cette raison, nous devrions sélectionner l'un des thèmes appropriés pour notre type de vue.

Voici à quoi ressemblent les problèmes
Si le thème ne convient pas, il nous donnera l’erreur de styles manquante .

 enter image description here

Voici la solution
1. Premièrement, sélectionnez la barre de thèmes .
 enter image description here

2.Sélectionnez le thème pour votre vue

 enter image description here

3.Après avoir sélectionné le thème, appuyez sur ok.
Si le thème convient à votre vue, il sera rendu sinon, sélectionnez-en un autre et essayez jusqu'à ce que vous trouviez un thème adapté à votre application.
Chaque fois que votre thème conviendra, il sera rendu comme dans l'image ci-dessous .  enter image description here

4
Harun ERGUL

Cliquez sur le bouton Actualiser  enter image description here

Sinon, essayez d'invalider les caches et de redémarrer

0
Nikhil

Je faisais face à un problème similaire.

Je ne sais pas quel était le problème et après avoir cherché une réponse sur google, je n’ai trouvé aucune aide. 

Donc, ce que j'ai fait a été supprimé de l'activité et devinez quoi ??, cela a fonctionné.

Encore une fois, je ne suis pas sûr de savoir comment cela a fonctionné, mais cela a finalement fonctionné pour moi.

J'espère que cela t'aides.

0
Pramod Solanky

lorsque vous créez une application Android, vous choisissez le minimum requis sdk API14.Et ensuite, vous créerez le projet avec succès. C'est ma solution.

0
margo