我需要使用targetSdk和compileSdk版本19来编译我的项目(这很简单,几乎是空的)。这是我的gradle文件:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 19
buildToolsVersion '23.0.3'
defaultConfig {
applicationId "com.my.app"
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.appsflyer:af-android-sdk:4.6.0@aar'
}
据我所知,我正在使用正确的appcompat库 - 它必须与targetSdk和compileSdk版本相同,尽管它不能用19.0.0编译,它说,它已经过时并自动切换它到19.1.0。我甚至试图摆脱appcompat库(有一个提示,在这个sdk版本我没有必要)。
在gradle文件中每次更改后,我都会清理并重新同步项目。虽然我仍然遇到同样的错误:
Error:(13) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Inverse'.
Error:(15) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Large.Inverse'.
Error:(21) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Medium.Inverse'.
Error:(28) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Small.Inverse'.
Error:(206) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ProgressBar'.
Error:(208) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ProgressBar.Horizontal'.
Error:(211) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Spinner'.
我没有插入所有错误,它们几乎相同,其中有203个。可能是什么问题?
P.S。这不是重复的。我需要来编译版本19,而不是21 ..请在downvoting之前确保您理解了这个问题。我需要让它发挥作用!
答案 0 :(得分:1)
材料设计在API 20中引入。
导入时:
compile 'com.google.android.gms:play-services:8.3.0'
您确实导入appcompat-v7:22.2.0
。请参阅依赖项here
你最多应该声明:
compile 'com.google.android.gms:play-services:5.0.89'
答案 1 :(得分:1)
为什么要定位SDK19?建议始终定位最新的SDK。您的代码未编译,因为在SDK21之前未引入Material。
如果您尝试使应用与较旧的Android版本兼容,那就是minSdkVersion的用途。
有关详细信息,请参阅AppCompat v7 r21 returning error in values.xml?。
如果您确实需要使用SDK19,则必须降级其他需要SDK21 +的依赖项。否则你想要达到的目标是不可能的。如果这些依赖项无法使用
进行编译,那么这些依赖项如何工作呢?答案 2 :(得分:0)
我同意 R.Zagórski 但由于声誉点无法发表评论。必须了解的是,如果您包含需要更新版Android SDK的依赖项,您的项目将自动更新为所需的版本。如果您坚持使用sdk19并希望保持材料设计外观,请考虑查看第三方库,让您模仿Google Material design的外观。这是免费图书馆的一个很好的资源https://android-arsenal.com/