【问题标题】:How to Change SDK version from 26 to 19如何将 SDK 版本从 26 更改为 19
【发布时间】:2017-11-12 18:33:30
【问题描述】:

首先,这是我的第一个应用开发。

所有这些都是在我基于

构建我的应用程序时
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
    minSdkVersion 23
    targetSdkVersion 25
}


dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
compile 'com.android.support:design:26.0.0-alpha1'
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile 'com.android.support:support-v4:26.0.0-alpha1'
}

一切都很完美。没有错误。

当我决定将 sdk 更改为 19 时,开始出现错误。

compileSdkVersion 'Google Inc.:Google APIs:19'
buildToolsVersion "26.0.1"
defaultConfig {
    applicationId "vinnito.plando"
    minSdkVersion 19
    targetSdkVersion 19

Errors that I got after changing SDK version

我想将其更改为 19 的原因是因为我的手机 Note 2 我希望将其用作调试我的应用程序的工具。 我知道有可用的模拟器,但我真的很想在实际设备上运行该应用程序。

我想为 SDK 19 添加依赖项,但我找不到任何依赖项。它们都是 SDK 26。 在我的 SDK 管理器中,我已经下载了 SDK 19 及更高版本..

Library Dependencies

任何人都知道如何使此源代码能够在 SDK 19 中运行而无需对代码进行重大更改或我别无选择?

提前致谢。

【问题讨论】:

  • 如果您使用支持库 v26(不要使用 alpha 版本),您必须使用 api 26 进行编译。

标签: android sdk


【解决方案1】:

如果你想使用支持库 v.26 首先使用:

compileSdkVersion 26

无法使用 api 19 编译

然后使用稳定版本:

compile 'com.android.support:recyclerview-v7:26.1.0
//....do the same for the other libraries.

注意,因为 v.26.x.x 需要 maven google repo.

最后,如果您想支持带有 api 19 的设备,只需使用:

defaultConfig {
    minSdkVersion 19
}

请记住,您也可以在具有 api 19 的设备上使用支持库 v26。

【讨论】:

  • 感谢 Gabriele 的解释!
  • 嗨@Vinc,如果这个或任何答案解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
【解决方案2】:

出于测试目的,您应该只将 minSdkVersion 更改为 19。 降级 targetSdkVersion 是不好的做法,没有必要。

您的 gradle 文件应如下所示:

compileSdkVersion 27
buildToolsVersion "26.0.2"

defaultConfig {
    minSdkVersion 19
    targetSdkVersion 27
}

ext {
    androidSupportVersion = '27.0.0'
}

dependencies {
    compile fileTree ( include: ['*.jar'], dir: 'libs' )
    compile "com.android.support:appcompat-v7:$androidSupportVersion"
    compile "com.android.support:design:$androidSupportVersion"
    compile "com.android.support:recyclerview-v7:$androidSupportVersion"
    compile "com.android.support:support-v4:$androidSupportVersion"
}

【讨论】:

  • 是的。我确实将 minSdkVersion 更改为 19,但每当我尝试 19 时,它都会出现大量错误
  • 您只更改了 minSdkVersion 吗?如果是,请在主帖中更新您的 gradle 文件
  • @mac229 将 minSdkVersion 设置为任何版本都是不错的做法,除非代码要求某些功能的最低阈值,即使那样进行相同的版本检查以使用方法或库也可以。说仅出于调试目的进行更改也是不正确的,而且没有必要。可能有必要覆盖更多的市场份额。 Android 19 及更低版本是市场上活跃设备的 10%。
  • 天哪。我已经写过降级 TARGET sdk 版本是不好的做法。其他图书馆也有同样的情况。很明显,您应该尽可能覆盖大多数设备。
  • 是的。它在将 minSdkVersion 更改为 19 并将其余部分更改为 26 后工作。猜想我的错误是我将其设置为 19 假设在 API 19 上运行需要targetsdkversion 19。非常感谢您的帮助!
【解决方案3】:

buildToolsVersion "26.0.1"可以去掉,Android 3.0以后就不需要了。设置 minSdkVersion 19 就足够了,无需将 targetSdkVersion 更改为 19。我使用 Android 4.4 进行测试,但由于它不适用于com.android.support:appcompat-v7:26.0.0 及更高版本,我使用的是 25.x.x 版本的 app-compat 和设计库。我还要加上我的gradle更清楚,你也不需要显式编译recyclerview,它包含在设计库中。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 21
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

【讨论】:

  • 是的。将 minSdkVersion 更改为 19,它现在可以在模拟器 API 19 中运行。将很快在实际设备上试用!谢谢你的建议=)
猜你喜欢
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-12
  • 2019-07-02
相关资源
最近更新 更多