【问题标题】:Android SDK compatibility for different modules from the Design Support Library来自设计支持库的不同模块的 Android SDK 兼容性
【发布时间】:2017-04-18 21:06:49
【问题描述】:

我想在我的应用程序中创建一个底部导航,我找到了一种简单的方法,即使用 Material Design 提供的底部导航

我唯一的问题是我希望应用程序在 Android SDK 23 上运行,我可以看到 Material 的底部导航需要compile 'com.android.support:design:25.0.0',而这需要'com.android.support:appcompat-v7:25.0.0'。目前我正在使用23.4.0,并且我假设更改它将使我的应用程序只能在 Android SDK 25 及更高版本上运行。

这是正确的吗?

【问题讨论】:

  • 为什么不自己试试呢?这是一个非常简单的测试用例

标签: android material-design


【解决方案1】:

没有。这是不正确的。 编译版本和最低版本之间有很大的重要区别。此更改仅在编译版本中。

  • 编译版本是编译器在编译代码时将查看的版本。这只是为了让编译器知道设备上有哪些方法可用。例如,要知道一个 Activity 有一个findViewById,而一个 ViewGroup 有一个addView。只要您不使用高于最低要求的方法,就没有区别。

  • 最低版本是您告诉 Google Play 和 Android 系统您的应用可以安装的最低版本,并且应该可以正常工作。那就是限制可以安装哪个版本的那个。

有关更多信息,我建议您阅读官方培训材料https://developer.android.com/training/material/compatibility.html,更具体的“检查系统版本”部分https://developer.android.com/training/material/compatibility.html#CheckVersion

【讨论】:

  • 我可以看到底部导航视图已添加到设计支持库的第 25 版中。但据我了解,这并不意味着它不适用于较低版本的 Android SDK。我在哪里可以找到设计支持库中不同模块的最低 android SDK 兼容性? @AlexGuerra 我想你可能也知道这个问题的答案。
  • 最简单的方法是把你的项目设置为最小 4 并等待编译错误。但这也应该提供一些见解developer.android.com/topic/libraries/support-library/… "注意:最低 SDK 版本已增加到 14"
  • 太好了,谢谢 :) 我将概括标题。这可能有助于其他人学习 Android 并想知道关于兼容性的相同问题。
【解决方案2】:

别担心,你引用 compile 'com.android.support:design:25.0.0 这只是你的依赖,所以首先

1.- 如果您想使用'com.android.support:design:25.0.0,您应该至少使用构建版本 25:

compileSdkVersion 25
buildToolsVersion '25.0.0'

2.- 如果您在 gradle 中定义的最小 SDK 或目标 SDK 小于 25,则您的应用可以使用 'com.android.support:design:25.0.0

minSdkVersion 15
targetSdkVersion 25

现在看看这个 gradle,它来自一个在 API 19 上运行的应用,并且底部导航视图运行良好

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.0'
    defaultConfig {
        applicationId "**********"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled = true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    dexOptions {
        jumboMode true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.0'
    compile 'com.android.support:support-v4:25.3.0'
    compile 'com.android.support:design:25.3.0'
    compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
    testCompile 'junit:junit:4.12'
}

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多