我正在尝试实现谷歌几天前发布的新的ActionBar支持库。在过去,我已经成功地实现了ActionBarSherlock没有任何问题使用相同的方法在谷歌开发人员的支持库设置页面上列出-使用关于如何包括资源的指南(这是类似于ActionBarSherlock是如何做到的)。我把这个库项目作为库加载到我自己的项目中。

我能看出图书馆的资料还不错。当,而不是在我的MainActivity.java上扩展活动,我把它改为扩展ActionBarActivity(根据谷歌的指令),没有发生错误-它正确地导入。

我甚至尝试绕过style.xml文件,添加@style/Theme.AppCompat。光直接在AndroidManifest.xml的<应用>和<活动>与android:theme="@style/ThemeAppCompat。所有的尝试都会导致同样的错误。

现在的问题是我不能让它改变主题,更不用说在不抛出错误的情况下构建了。下面是我收到的错误,后面是我更改为使用新主题的style.xml文件。

我有一定的Android应用程序工作经验,正在运行Eclipse的最新版本的支持库和SDK编译API 18 (Android 4.3)。

生成时收到的错误

获取父项的错误:没有找到匹配给定名称的资源'@style/Theme.AppCompat.Light'。styles.xml /ActBarTest/res/values line 3 Android AAPT Problem

style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.ProsoftStudio.ACTest" parent="@style/Theme.AppCompat.Light">
    </style>
</resources>

有什么建议吗?这从来不是ActionBarSherlock的问题。我想使用这个新的支持库。看起来像是.jar在加载,而不是资源。


当前回答

我将分享我在这个问题上的经验。我都快疯了,但我发现问题出在Eclipse本身,而不是我的代码: 在eclipse中,无法在另一个android项目中引用一个android库项目

所以,如果你在你的C:驱动器中有Android支持库,而你的项目在你电脑的D:驱动器中,Eclipse将不能正常工作,并且不会知道Android支持库在哪里(绿色的勾变成红色的叉)。要解决这个问题,您需要将两个项目移动到同一个硬盘驱动器上。

其他回答

我也遇到过同样的问题,浪费了4-5个小时来解决。我的问题用;

From SDK manager delete packages "Android Support Library" and " Android Support Repository". Reinstall "Android Support Library" and " Android Support Repository" Remove "android-support-v7-appcompat" or "appcompat_v7 what else you have in your project. Import android-support-v7-appcompat from "adt-bundle-windows-x86_64-20140702\sdk\extras\android\support\v7\appcompat" Select your project and from file choose properties and find Java Build Path and then from "Project" tab delete what else there and then Add. and you must see "android-support-v7-appcompat" , select and add it to Project tab. Check your project.properties file below your Project files, you will see like this; target=android-21 android.library.reference.1=../android-support-v7-appcompat then check AndroidManifest.xml file if target is 21 or what else you choosed. Also check for library reference same as your library that choosed before.

希望你能找到你的解决方案。

由于Android Studio 1.0.1中的导入对话框不同,我无法让Svyatoslav Lobachs版本工作。

相反,我在SDK管理器中下载了“Android支持资源库”。然后补充说

dependencies {
...
compile "com.android.support:appcompat-v7:18.0.+"
}

build.gradle。为我工作。

接下来你需要做的是:

文件- >导入(android android sdk \配件\ \ \ v7支持)。选择“AppCompat” 项目- >属性- > Android。在section库中选择“Add”,然后选择“AppCompat” 就这些!

注意:如果你在菜单项中使用“android:showAsAction”,你需要改变前缀android,例如http://developer.android.com/guide/topics/ui/actionbar.html

对于Android Studio或IntelliJ,你所需要做的就是在gradle.build中更新你的依赖。我使用了以下方法:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.2'
}

你需要参考$ANDROID_SDK/extras/android/support/v7/appcompat