Android SDK与Design Support Library中不同模块的兼容性

时间:2017-04-18 21:06:50

标签: android material-design

我想在我的应用程序中创建一个底部导航,我通过 Material Design 提供了一个简单的方法底部导航

我唯一的问题是我希望应用程序在 Android SDK 23 上运行,我可以看到材料底部导航需要compile 'com.android.support:design:25.0.0',需要'com.android.support:appcompat-v7:25.0.0'。目前我正在使用23.4.0,我假设更改此设置会使我的应用程序仅在Android SDK 25及更高版本上运行。

这是对的吗?

2 个答案:

答案 0 :(得分:3)

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

  • 编译版本是编译器编译代码时所看到的版本。这只是让编译器知道设备上有哪些方法可用。例如,要知道某个活动具有findViewById且ViewGroup具有addView。只要您不使用高于最小值的方法就没有区别。

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

有关详情,建议您阅读此处的官方培训材料https://developer.android.com/training/material/compatibility.html,更具体地说,请查看“检查系统版本”https://developer.android.com/training/material/compatibility.html#CheckVersion

答案 1 :(得分: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'
}