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

Posted

技术标签:

【中文标题】修复styles.xml中的错误以生成R.java:找不到资源名称\'Theme.AppCompat.Light\'【英文标题】:Fixing Error in styles.xml to generate R.java : No resource found name 'Theme.AppCompat.Light'修复styles.xml中的错误以生成R.java:找不到资源名称'Theme.AppCompat.Light' 【发布时间】:2014-04-11 21:06:19 【问题描述】:

我是 android 新手,正在尝试运行我的第一个程序。但是,根据我在 Internet 上的搜索,我认为我无法导入 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>

【问题讨论】:

问题出在您的styles.xml中,请将其添加到您的帖子中。 更新添加styles.xml代码 【参考方案1】:

由于您在主题中使用Theme.AppCompat.Light,因此您必须将appCompat 包含到您的项目中。

文件->导入 (android-sdk\extras\android\support\v7)。选择“appcompat”

项目-> 属性->Android。在节库中

“添加”并选择“appCompat”

应该可以。

【讨论】:

它说选择一个导入源,我尝试将过滤器文本输入为 android-sdk\extras\android\support\v7 和 appCombat,但没有出现任何结果。我应该选择什么? 哦,你必须去你的 sdk 文件夹和位于 extras/android/support/v7/appcompat 下的 appcompat 文件夹 ..【参考方案2】:

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

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

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

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

Support Library Setup

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

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

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

    文件->导入 (android-sdk\extras\android\support\v7)。选择“appcompat项目-> 属性->Android。在部分库中“添加”并选择“appCompat

现在,清理并构建您的项目并运行它。我想在所有这些之后,你的问题就会得到解决。

【讨论】:

刚刚创建了另一个错误-error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Light'. 在哪里可以找到 LogCat? (在 Eclipse 中) 现在 theme.light 没有错误了!我不确定我做了什么,我只是想在项目中包含 appcombat,然后我检查了一下,styles.xml 中没有错误 但是,values-v11 和 values-v14 中的styles.xmls 中仍然存在错误 @ravensgo...查看我更新的答案...忘记之前的答案。【参考方案3】:

确保您正确关闭了&lt;resources&gt; 标签并在您的styles.xml 底部添加:

 </resources>

根据您发布的代码 sn-p 不存在,但需要

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

【讨论】:

我的错,我只是没有在结束标记前放四个空格,它没有出现在代码中......它在实际的 xml 文档中 好的,那么我建议您切换到另一个主题,例如提到的“android:Theme.Light”,这对于 HelloWorld 应用程序来说应该很好 uy,那么我认为看看你的 AndroidManifest.xml 是有意义的,也许也可以发布它。 清单似乎还可以......也许试试这个答案:***.com/a/19886189/2399024【参考方案4】:

我终于找到了问题所在。我不得不从我的main.xml 中删除这行代码:

android:showAsAction="never"

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

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

...它目前正在运行。

【讨论】:

以上是关于修复styles.xml中的错误以生成R.java:找不到资源名称'Theme.AppCompat.Light'的主要内容,如果未能解决你的问题,请参考以下文章

谷歌播放服务 appinvite_styles.xml 错误

styles.xml 中的自定义属性

如何在 Android 中从 styles.xml 设置 EditText 样式?

如何*动态*改变 iOS/Android 的每种颜色?例如。在 Droid 代码中,覆盖“Styles.xml”中的“colorAccent”

相当于Xcode中android的styles.xml

excel 中发现不可读取的内容