Android Studio - Appcompat 构建失败 values-v23/styles_bases。xml
Android Studio - Appcompat build fail values-v23/styles_bases.xml
我将从我想要实现的目标开始:构建此处提供的 googlecast-manager 示例:https://github.com/googlecast/GameManagerSamples
我按照此处的说明操作:https://developers.google.com/cast/docs/android_sender
所以我首先从 github 项目下载,然后使用 Android SDK 管理器下载 Android 支持库和 Google 播放服务。然后在我的项目中,我去了"Open Modules Setting->Add"然后去了"Android SDK\extras\android\support\v7\appcompat"并添加了它。
然后确保其正常工作的第一步是构建它。所以我右键单击了 appcompat->"Compile Module Appcompat" 但它失败了 2 个错误:
Error:(20, -1) android-apt-compiler: [appcompat] D:\Android
SDK\extras\android\support\v7\appcompat\res\values-v23\styles_base.xml:20:
error: Error retrieving parent for item: No resource found that
matches the given name 'android:Widget.Material.Button.Colored'.
Error:(19, -1) android-apt-compiler: [appcompat] D:\Android
SDK\extras\android\support\v7\appcompat\res\values-v23\styles_base_text.xml:19:
error: Error retrieving parent for item: No resource found that
matches the given name
'android:TextAppearance.Material.Widget.Button.Inverse'.
为 Google 做同样的事情就像一个魅力。
我试图找到 videos/other 类似的问题,但要么太复杂,要么不是我的问题。
这里是 appcompat 的 AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.support.v7.appcompat">
<uses-sdk android:minSdkVersion="9"
android:targetSdkVersion="19"/>
<application />
这是从 Android SDK 管理器安装的:
我认为您应该升级 compileSdkVersion
。检查你的 build.grade
文件,应该是这样的:
android {
compileSdkVersion 23 // <- here
buildToolsVersion "23.0.0" // <- here
defaultConfig {
applicationId "your.id"
minSdkVersion 11
targetSdkVersion 23 // <- and maybe here
versionCode 1
versionName "1.0"
}
buildTypes {
....
}
}
当然,您需要从 SDK 管理器下载最新的 Android SDK 和构建工具(以及您需要的任何其他工具)。
我确实找到了问题的答案,上面的人是对的。用于编译模块的模块 SDK 设置为 22.0 而不是 23.0。为了解决这个问题,我做了以下事情。
右键单击 appcompat:"Open Module Setting -> Modules SDK":新建。我选择了包含整个 Android SDK 的文件夹,并选择了最后一个 Android(例如 6.0)和最后一个 Module SDK 23.0.
我也遇到了同样的问题,现在已经解决了。你只需要做的就是
- 在你的Android工作室里
- 按Shift键两次,会出现一个搜索框输入build.gradle
- 从建议中选择build.gradlemodule:app。
-
compileSdkVersion
和 support libraries
下 dependencies
的主要版本应与以下代码描述相同。
- Eclipse 内部
找到 build.gradle module:app
并做同样的事情。
注意: 下载并正确安装最新的 API
,现在是 API 23
.
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "com.example.inzi.app"
minSdkVersion 9
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
}
恢复到 appcompact-v22 或更新到 android api v23
如果您在 Eclipse 中工作,请执行以下操作:
- 在您的
AndroidManifest.xml
文件中,将 android:targetSdkVersion
更改为 23
- 打开项目设置(
ALT
+ Enter
,同时专注于 Project Explorer)
- 转到
Android
选项卡并在 Project Build Target
部分标记 Android 6.0
- 清理并构建您的项目
注意:执行此操作时请记住,Android OS 会将您的应用视为专为在 Android M 上运行而设计。例如,如果您使用一些危险的权限,您应该添加例程以在运行时检查。
我在使用新的 appcompat V-23 时遇到问题,因为我的目标 sdk 是 21。所以我执行了两个步骤,它非常适合我..
1) 删除res文件夹中的values-23文件夹
2) 我在 src 文件夹中也遇到了错误,所以评论了 snippet.java 的 main() 中的唯一一行,因为我们不需要它。
然后将此项目作为库添加到您的项目中。希望对您有所帮助。
本次讨论中的答案#31 和#11 可以解决这个问题:
https://code.google.com/p/android/issues/detail?id=183122
您必须将您的 SDK 更新到未下载或未正确安装的 API 23
。
在你的build.gradle
设置
compileSdkVersion 23
buildToolsVersion "23.0.0"
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.0.0'
我解决如下
android {
compileSdkVersion "Google Inc.:Google APIs:21"
buildToolsVersion "23.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
}
将上面的 dependencies
替换为下面的...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:7.8.0'
}
要更正 android 工作室中的此错误,请按如下方式进行:
我去了 sdk 管理器,我下载并更新了 android api 23 的所有包
文件 => 项目结构,我将编译 sdk 版本从 21 更改为 23,并将构建工具版本从 21 更改为 23
您必须将您的 SDK 更新到 API 23 未下载或未正确安装。
确保您的 compileSdkVersion
和 dependencies
版本应该相同。
该问题一般是版本问题。以下依赖项和 compilesdkversion 对我有用:-
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.android.support:wearable:+'
compile 'com.google.android.gms:play-services-wearable:+'
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:recyclerview-v7:23.0.0'
compile 'com.android.support:support-v13:23.0.+'
compile 'com.firebase:firebase-client-android:2.2.4+'
}
我的问题是,我的 un-used 依赖项之一使用的是 sdk-23 版本。因此,在删除那些 un-used 依赖项后,它就像一个魅力。
我将从我想要实现的目标开始:构建此处提供的 googlecast-manager 示例:https://github.com/googlecast/GameManagerSamples 我按照此处的说明操作:https://developers.google.com/cast/docs/android_sender
所以我首先从 github 项目下载,然后使用 Android SDK 管理器下载 Android 支持库和 Google 播放服务。然后在我的项目中,我去了"Open Modules Setting->Add"然后去了"Android SDK\extras\android\support\v7\appcompat"并添加了它。
然后确保其正常工作的第一步是构建它。所以我右键单击了 appcompat->"Compile Module Appcompat" 但它失败了 2 个错误:
Error:(20, -1) android-apt-compiler: [appcompat] D:\Android SDK\extras\android\support\v7\appcompat\res\values-v23\styles_base.xml:20: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.
Error:(19, -1) android-apt-compiler: [appcompat] D:\Android SDK\extras\android\support\v7\appcompat\res\values-v23\styles_base_text.xml:19: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
为 Google 做同样的事情就像一个魅力。
我试图找到 videos/other 类似的问题,但要么太复杂,要么不是我的问题。
这里是 appcompat 的 AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.support.v7.appcompat">
<uses-sdk android:minSdkVersion="9"
android:targetSdkVersion="19"/>
<application />
这是从 Android SDK 管理器安装的:
我认为您应该升级 compileSdkVersion
。检查你的 build.grade
文件,应该是这样的:
android {
compileSdkVersion 23 // <- here
buildToolsVersion "23.0.0" // <- here
defaultConfig {
applicationId "your.id"
minSdkVersion 11
targetSdkVersion 23 // <- and maybe here
versionCode 1
versionName "1.0"
}
buildTypes {
....
}
}
当然,您需要从 SDK 管理器下载最新的 Android SDK 和构建工具(以及您需要的任何其他工具)。
我确实找到了问题的答案,上面的人是对的。用于编译模块的模块 SDK 设置为 22.0 而不是 23.0。为了解决这个问题,我做了以下事情。 右键单击 appcompat:"Open Module Setting -> Modules SDK":新建。我选择了包含整个 Android SDK 的文件夹,并选择了最后一个 Android(例如 6.0)和最后一个 Module SDK 23.0.
我也遇到了同样的问题,现在已经解决了。你只需要做的就是
- 在你的Android工作室里
- 按Shift键两次,会出现一个搜索框输入build.gradle
- 从建议中选择build.gradlemodule:app。
-
compileSdkVersion
和support libraries
下dependencies
的主要版本应与以下代码描述相同。
- Eclipse 内部
找到build.gradle module:app
并做同样的事情。
注意: 下载并正确安装最新的 API
,现在是 API 23
.
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "com.example.inzi.app"
minSdkVersion 9
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
}
恢复到 appcompact-v22 或更新到 android api v23
如果您在 Eclipse 中工作,请执行以下操作:
- 在您的
AndroidManifest.xml
文件中,将android:targetSdkVersion
更改为23
- 打开项目设置(
ALT
+Enter
,同时专注于 Project Explorer) - 转到
Android
选项卡并在Project Build Target
部分标记Android 6.0
- 清理并构建您的项目
注意:执行此操作时请记住,Android OS 会将您的应用视为专为在 Android M 上运行而设计。例如,如果您使用一些危险的权限,您应该添加例程以在运行时检查。
我在使用新的 appcompat V-23 时遇到问题,因为我的目标 sdk 是 21。所以我执行了两个步骤,它非常适合我..
1) 删除res文件夹中的values-23文件夹
2) 我在 src 文件夹中也遇到了错误,所以评论了 snippet.java 的 main() 中的唯一一行,因为我们不需要它。
然后将此项目作为库添加到您的项目中。希望对您有所帮助。
本次讨论中的答案#31 和#11 可以解决这个问题: https://code.google.com/p/android/issues/detail?id=183122
您必须将您的 SDK 更新到未下载或未正确安装的 API 23
。
在你的build.gradle
设置
compileSdkVersion 23
buildToolsVersion "23.0.0"
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.0.0'
我解决如下
android {
compileSdkVersion "Google Inc.:Google APIs:21"
buildToolsVersion "23.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
}
将上面的 dependencies
替换为下面的...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:7.8.0'
}
要更正 android 工作室中的此错误,请按如下方式进行: 我去了 sdk 管理器,我下载并更新了 android api 23 的所有包 文件 => 项目结构,我将编译 sdk 版本从 21 更改为 23,并将构建工具版本从 21 更改为 23
您必须将您的 SDK 更新到 API 23 未下载或未正确安装。
确保您的 compileSdkVersion
和 dependencies
版本应该相同。
该问题一般是版本问题。以下依赖项和 compilesdkversion 对我有用:-
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.android.support:wearable:+'
compile 'com.google.android.gms:play-services-wearable:+'
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:recyclerview-v7:23.0.0'
compile 'com.android.support:support-v13:23.0.+'
compile 'com.firebase:firebase-client-android:2.2.4+'
}
我的问题是,我的 un-used 依赖项之一使用的是 sdk-23 版本。因此,在删除那些 un-used 依赖项后,它就像一个魅力。