【问题标题】: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代码

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


【解决方案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

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

  1. 文件->导入 (android-sdk\extras\android\support\v7)。选择“appcompat
  2. 项目-> 属性->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 是有意义的,也许也可以发布它。
  • 清单似乎还可以......也许试试这个答案:stackoverflow.com/a/19886189/2399024
【解决方案4】:

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

android:showAsAction="never"

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

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

...它目前正在运行。

【讨论】:

    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 2012-12-02
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多