【问题标题】:Failed to find style 'mapViewStyle' in current theme在当前主题中找不到样式“mapViewStyle”
【发布时间】:2011-11-14 07:55:54
【问题描述】:

我正在制作一个使用谷歌地图的应用程序。但在我的 xml 中,我收到错误“无法在当前主题中找到样式 'mapViewStyle'”。相反,我已经授予了上网权限,并在应用程序标签中使用了谷歌地图库。

谁能帮我解决这个问题。

非常感谢

下面是我的xml文件...

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />
  <com.google.android.maps.MapView
    android:id="@+id/mapview1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:enabled="true"
    android:clickable="true"
    android:apiKey="0ACHOtlugQlOP_-siR3LLyIBjv1SwpKWimIY8jw" />
</Relativelayout>

【问题讨论】:

  • 显示错误的 xml 文件,其中出现样式“mapViewStyle”的错误。
  • 我已经编辑了我的帖子。看看代码。
  • 你从哪里得到错误信息?
  • 这是整个 xml 代码吗?如果不是,请粘贴完整的代码...如果是,那么您的 mapview 标签在哪里?地图应用 xml 文件示例:schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > 代替 your_api_key_here,粘贴您唯一的 google
  • This 可能对某些人有帮助。

标签: android maps


【解决方案1】:

如果您在图形布局上使用 Android 3.0 及更高版本。尝试将其更改为 Android 2.2 或 2.3。

【讨论】:

    【解决方案2】:

    不知道为什么,但是如果你添加一个明确的样式并在 /values/styles.xml 中定义它,这个错误就会消失。

    styles.xml:

    <style name="mapView">
        <item name="android:gravity">center</item>
    </style>
    

    和布局:

    <com.google.android.maps.MapView
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:apiKey="YOUR_API_KEY"
        android:visibility="visible"
        style="@style/mapView"
    />
    

    似乎 com.google.android.maps.MapView 真的想要声明某种样式。

    【讨论】:

      【解决方案3】:

      您只需将 Android 2.2 更改为 android 3.0, 并提供 id 和用户权限以及应用程序的子级

      【讨论】:

        【解决方案4】:

        我的回答可能比较晚,但我希望它能解决实际原因,并确保它对那些将来要搜索相同问题的人有所帮助。

        这类错误,

        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 
        

        上面列表中的任何东西都可以,

        最终的原因是,

        我们为layout 选择了不可用的Theme

        这可能是因为,

        1. 所选的themethemes.xml 文件中不可用。
        2. 选中的theme属于高版本sdk,但我们当前的目标sdk是低版本。

        这个问题大多发生,

        1. 当您复制整个layout 文件并尝试在您的project 中实现它时。 一种。您可能忘记复制themes.xml 文件 湾。您可能有较低的target sdk,原来的layout 是用较高的target sdk 创建的。

        这个问题的解决方案是,

        (打开查看Graphical Layout View中的layout文件,并查看右上角。 你的themes layout 已被选中。)

        1. 所以点击下拉列表theme选择并根据你的项目themestargeted sdk themes选择可用的themes(或)
        2. 如果themecustom 之一,如果您需要它,则将themes.xml 文件从您复制layout xml 文件的源复制到您的项目。 (或)
        3. 如果themesdk可用theme,如果你需要它,然后根据你选择的theme更改你的target

        希望,这可能对某人有所帮助。

        【讨论】:

        • 在发布多个问题的复制和粘贴样板/逐字答案时要小心,这些往往会被社区标记为“垃圾邮件”。如果您这样做,则通常意味着问题是重复的,因此请标记它们。
        • 谢谢@Kev。我刚来这里时就这样做了...发布dis后我意识到我不会再这样做了...感谢您对我的警告...
        • 是的,我更改了应用主题名称,但在 Eclipse 的设计器视图中仍然引用旧主题名称。好建议!
        【解决方案5】:

        此错误是由于 mapViewStyle 缺少某些图标或属性。如果您曾经在 android 设备上应用过任何自定义主题,那么您可能会遇到 “缺少资产”“主题未正确编译” 等错误。这些错误是由于缺少用于手机的每一种外观的图标或布局,例如按钮、菜单、状态栏等。

        mapViewStyle 也是如此。在项目创建期间,您可能已经为您的应用程序选择了一个默认主题。此主题缺少 mapViewStyle 的某些组件,例如按钮图标或样式(只是给出想法,我不知道这是不是真的)。我想你可能已经明白了这一点。

        现在要删除错误进入res&gt;values&gt;styles.xml

        删除之前的主题行并放入这一行

        <style name="AppBaseTheme" parent="android:Theme.Light">
        

        上面的例子只是为了让你理解并让你对问题有一个大致的了解。我没有说它是 100% 真实的。

        如果此答案有用,请将其标记为有用。

        【讨论】:

          【解决方案6】:

          这些错误的另一个原因实际上可能是内部 eclipse 错误

          在这种情况下,解决方法是:

          1. 关闭xml布局文件
          2. 重新启动 Eclipse(甚至我听说的 ADT 也发生在那里)

          通常值得一试(尤其是当您“突然”遇到此错误时),因为它不会花费很多时间。尽管对于 OP 可能并非如此,但这仍然可以帮助其他人搜索。

          【讨论】:

          • 关闭 xml 布局文件为我解决了这个问题。谢谢!
          【解决方案7】:

          确保您已将自定义主题部分添加到 res 下不同值文件夹下的所有其他 styles.xml 中。

          我有类似的问题。就我而言,我在 res 下的 values-large 文件夹中添加了一个自定义主题。它在运行时工作,但在 Eclipse 中给出错误。 所以我尝试在所有其他 styles.xml 文件中添加自定义部分(在我的情况下,styles.xml 文件中总共添加了 3 个标签)。即values-normal-hdpivalues-normal-mdpivaluse-v11values-v14 下的styles.xml 文件...和BOOM !!! 它解决了我浪费了一整天的问题。

          【讨论】:

            【解决方案8】:

            确保以不同值显示的所有其他styles.xml 包含您的自定义主题部分。

            我有类似的问题。

            在我的例子中,我在 res 下的 values-large 文件夹中添加了一个自定义主题。 它在运行时工作,但在 Eclipse 中给出错误。

            所以我尝试在所有其他 styles.xml 文件中添加自定义部分(在我的情况下,styles.xml 文件中总共添加了 3 个标签)。即values-normal-hdpivalues-normal-mdpivaluse-v11values-v14下的styles.xml文件...

            然后砰!它解决了我浪费了一整天的问题。

            【讨论】:

              【解决方案9】:

              虽然我确信这并不适合所有人,但对我来说,我只是将预览窗口中的主题更改为 Theme.AppCompat.Light

              似乎在某些情况下仅仅设置正确的主题就是解决方案。所有这些选择中的哪个主题?首先选择兼容性主题;之后,祝你好运!

              【讨论】:

                【解决方案10】:

                通过单击“预览”上的“刷新”按钮刷新 xml 布局或关闭 xml 然后再次打开它来解决我的问题

                【讨论】:

                  【解决方案11】:

                  每个 android 主题都不适合每种类型的视图。因此,我们应该为我们的视图类型选择合适的主题之一。

                  问题如下所示
                  如果主题不合适,它会给我们缺少样式错误。



                  这里是解决方案
                  1.首先选择主题栏。

                  2.为您的视图选择主题

                  3.选择主题后,然后按确定。
                  如果主题适合您的视图,它将呈现,否则请选择另一个主题并尝试直到找到适合您的应用程序的主题。
                  只要您的主题合适,它就会呈现如下图所示。

                  【讨论】:

                    猜你喜欢
                    • 2012-01-20
                    • 2012-03-16
                    • 1970-01-01
                    • 2011-10-21
                    • 2012-05-25
                    • 1970-01-01
                    • 2018-12-05
                    • 2018-08-23
                    • 1970-01-01
                    相关资源
                    最近更新 更多