找不到与给定名称'@android:style/Theme.Material.Light.DialogWhenLarge.NoActionBar'匹配的资源。

14

当我尝试使用最新的Google Play服务SDK时,我遇到了这个错误:

C:\Program Files (x86)\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\res\values-v21\appinvite_styles.xml:5: error: Error retrieving parent for item: No resource found that matches the given name '@android:style/Theme.Material.Light.DialogWhenLarge.NoActionBar'.

我瞄准的是android-19,但也尝试了android-21,结果相同。我有Android支持库enter image description here

如果我使用较旧版本的Google Play服务(rev. 21),则不会出现错误。此外,在早期版本中没有values-v21文件夹。如何修复此错误?

编辑:我已尝试使用API 21,但此错误仍然存在。 在manifest.xml中:

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

project.properties中:

target=android-21

3
将您的compileSdkVersion设置为21或更高版本。并且,由于我猜测您仍在使用Eclipse(尽管官方支持将在约2周后结束),compileSdkVersion等于您的构建目标(Project > Properties > Android)。该主题是在API Level 21中添加的。 - CommonsWare
我总是担心带空格的文件夹(过去曾经受过伤)。我建议将你的Android SDK从 *C:\Program Files (x86)\Android* 移动到 **C:\Android**,这样可以避免不必要的烦恼。 - Blundell
我已经尝试了这两件事情,但问题仍然存在。 - morpheus
看起来compileSdkVersion是Gradle的东西?我正在使用Ant构建,而uses-sdk元素中不存在compileSdkVerion。http://developer.android.com/guide/topics/manifest/uses-sdk-element.html - morpheus
1
转到Android Studio,你的问题(就像这样)将会结束 :-) - RafaelJan
@rafraph - 上次我使用基于IDEA的集成开发环境时,它在闲置时占用了800MB的内存。我的系统只有4GB内存,所以无法浪费那么多内存。他们改进了吗? - Jules
3个回答

22

按照以下步骤进行操作

  • 右键单击google-play-services_lib项目,选择属性
  • 进入Java编译器并将其设置为1.5
  • 进入Android并将项目构建目标设置为Android 6.0
  • 确保您已安装了Android SDK工具和Google Play服务的最新更新

关闭该项目并重新打开它,这也有帮助。


1
对我来说,我只需要更改我的项目以使用“android 6.0”.. 不需要更改google-play-services_lib的JDK.. 然后就可以解决问题了。谢谢! - Gene Bo
请恕我直言,这是一个荒谬的建议,对我来说行不通。 - Andrew S
@AndrewS 我不明白你为什么认为这很荒谬。问题似乎在于当你在Eclipse中导入项目时,它会选择这些属性的错误默认设置。该项目必须使用Java 1.5进行编译,因为它需要支持旧版本的Android,而这是最新可接受的版本,并且需要构建目标足够高以存在所请求的符号;由于某种原因,Eclipse为我选择了Java 1.6和Android 4.4.2。将其更改为1.5和5.0.1即可正常工作。 - Jules

4

我通过将google-play-services_lib清单中的minSdkVersion更改为我的应用程序使用的最低SDK版本来解决了这个问题。例如:<uses-sdk android:minSdkVersion="14"/>


这也是解决方案的一部分! - itzo

0

我不使用任何IDE。我解决这个问题的方法是升级到gradle并将compileSdkVersion设置为23,或者另一个选项是坚持使用ant和旧版本的Google Play服务(rev. 21),幸运的是我已经将其检入我的repo。(SDK管理器始终会给您最新版本,此时的最新版本是29)。


要下载旧版本的Google Play服务,请访问以下链接:https://dev59.com/W2Ei5IYBdhLWcg3wwegN - Arash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接