让我们解决“当前主题中找不到风格'mapViewstyle'的错误”

时间:2012-08-19 03:13:48

标签: android eclipse android-layout android-mapview

很抱歉发布另外一个,但似乎我们还没有记录这个问题的每个解决方案。

以下是发生的事情:我添加了一个mapview,一切都在工作。我添加了一个滑动抽屉并将按钮移入其中,然后将根节点从线性更改为相对。从那时起,我在main.xml类的图形布局中出现错误,该错误为

  

缺少样式。是否为此布局选择了正确的主题?使用布局上方的主题组合框选择不同的布局,或修复主题样式引用。无法在当前主题中找到样式'mapViewStyle'。

将根节点切换为线性并返回到亲属已经显示了地图,但错误仍然在图形布局中。

到目前为止,我已经完成了以下解决方案,可以解决大多数情况下的问题:

  1. 添加了style.xml以创建“mapView”样式。
  2. 已验证我的构建目标是API 2.3.3(10)
  3. 确保<uses-library android:name="com.google.android.maps"/>是Application的子节点。
  4. 清理/重建我的申请。
  5. 删除了R。
  6. 删除并重建了main.xml
  7. 重新启动了adb服务器,Eclipse,我的计算机和我的设备。
  8. 在图形布局中,在Android 3.0和Android 2.3.3之间切换。
  9. 然而,我的问题仍然存在。这是我的布局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>
    

    这是我的清单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>
    

    如果有人有解决方案,请告诉我。如果我弄清楚的话,我会尽力回复。

5 个答案:

答案 0 :(得分:10)

我的回答可能是迟到的,但我希望它能解决实际原因,并确保它可能对那些将来会搜索同一问题的人有所帮助。

此类错误,

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 

可能是以上列表中的任何内容,

最终的原因是,

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

这可能是因为,

  1. theme文件中未提供所选的themes.xml
  2. 所选theme属于更高版本sdk,但我们当前的目标sdk较低。
  3. 这个问题大多发生,

    1. 复制整个layout文件并尝试在project中实施时。 一个。您可能忘记复制themes.xml文件 湾您的target sdk可能较低,layout的原始target sdk可能较高layout
    2. 此问题的解决方案是,

      打开查看 Graphical Layout View中的themes文件,然后查看右上角。 已经选择了layout theme

      1. 因此,请点击themes选择的下拉列表,然后根据您的项目themestargeted sdk themes选择可用的theme。                        的(OR)
      2. 如果customthemes.xml,如果您需要,请将layout xml文件从您复制theme文件的源复制到项目中。                        的(OR)
      3. 如果sdk theme有效target,如果您需要,请根据您选择的theme更改{{1}}。
      4. 希望,这对某些人可能有帮助。

答案 1 :(得分:4)

此解决方案适用于Android Studio,也许它也会为Eclipse用户提供一个想法。
每个Android主题都不适合每个视图。因此,我们应该为我们的视图类型选择一个合适的主题。

以下是问题的解决方法
如果主题不合适,它将给我们缺少样式错误。

enter image description here

以下是解决方案
1.首先选择主题栏。
enter image description here

2.为您的观点选择主题

enter image description here

3.选择主题后,按确定。
如果主题适合您的视图,如果没有,则会渲染,然后选择另一个主题并尝试直到找到适合您应用的主题。
每当您的主题合适时,它将呈现如下图所示。 enter image description here

答案 2 :(得分:0)

我遇到了类似的问题。

我不知道问题是什么,在谷歌上搜索答案之后我找不到任何帮助。

所以我所做的就是删除了活动并猜测了什么?它有效。

同样,我不确定这是如何解决的,但它最终对我有用。

希望这有帮助。

答案 3 :(得分:0)

当你创建android应用程序时,你选择了最低要求的sdk API14。然后,你将成功创建项目。这是我的解决方案。

答案 4 :(得分:0)

点击“刷新”按钮enter image description here

否则尝试使高速缓存失效并重新启动