Android Studio编译为sdk版本19

时间:2016-12-01 10:20:15

标签: android gradle sdk

我需要使用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之前确保您理解了这个问题。我需要让它发挥作用!

3 个答案:

答案 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/