修复styles.xml中的错误以生成R.java:找不到资源名称'Theme.AppCompat.Light'

时间:2014-03-08 16:13:48

标签: android xml android-support-library r.java-file android-appcompat

我是Android新手,我正在尝试运行我的第一个程序。但是,基于我在互联网上的搜索,我认为我无法导入mypackage.R因为我的style.xml文件中的错误而未生成r.java。我一直在寻找如何解决这些问题,但我找不到一个有效的修复方法。 styles.xml中的错误是

error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'

有谁知道如何解决这个问题?

![style.txt中的错误] [1]

以下是我正在使用的代码:

package com.example.test;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}

更新: 这是styles.xml:

<resources>

<!--
    Base application theme, dependent on API level. This theme is replaced
    by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.
    -->
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>

</resources>

更新2: 这是AndroidManifest.xml

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

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="19" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.test.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

</manifest>

4 个答案:

答案 0 :(得分:10)

您正在尝试使用Theme.AppCompat.Light主题,这是一个图书馆项目。您必须将此库项目引用到您的项目中。

现在,首先,检查您是否安装了此库项目,如下所示......

转到窗口 - &gt; Android SDK Manager ,然后会出现一个名为 Android SDK Manager 的窗口,如下所示。

enter image description here

如果未安装Android Support Library,请安装它。您可以从以下Android开发者网站上查看有关Android Support Library设置的更多信息。

Support Library Setup

设置完成Android Support Library后,从此路径引用库到您的项目...

android-sdk/extras/android/support/v7/appcompat

要参考,请按以下步骤操作:

  1. 文件 - &gt; 导入(android-sdk \ extras \ android \ support \ v7)。选择“ appcompat
  2. 项目 - &GT;的属性 - &GT;的的Android 即可。在“添加”部分库中选择“ appCompat
  3. 现在,清理并构建项目并运行它。我认为,经过所有这些,你的问题将得到解决。

答案 1 :(得分:2)

我终于找到了问题所在。我必须从我的main.xml

中删除这行代码
android:showAsAction="never"

在我的values-v11values-14个文件夹下,我将应用名称更改为...

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

......它目前正在运作。

答案 2 :(得分:1)

由于您在主题中使用Theme.AppCompat.Light,因此必须在项目中加入appCompat

  • 文件 - &gt;导入(android-sdk \ extras \ android \ support \ v7)。选择“appcompat”

  • 项目 - &GT;属性 - &GT;机器人。在部分库中

  • “添加”并选择“appCompat”

那应该有用。

答案 3 :(得分:0)

确保正确关闭<resources>代码并添加到styles.xml的底部:

 </resources>

根据您发布的不存在的代码段,但需要

编辑:缺少的资源标记只是一个有问题的复制粘贴错误,所以这不是原因。