我想在我的应用程序中创建一个底部导航,我通过 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及更高版本上运行。
这是对的吗?
答案 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'
}