compileSdkVersion、minSdkVersion、targetSdkVersion 应该怎么设置才能支持Marshmallow to Pie?

What should I set for compileSdkVersion, minSdkVersion, and targetSdkVersion to support from Marshmallow to Pie?

我的 android 应用程序可以毫无问题地安装在 Oreo & Pie 中。如果我尝试在 phone 的 Marshmallow & Nougat 版本中安装发布版本,则会抛出错误 "There is error while parsing the package" 请在 gradle

中找到我的 sdk 版本
compileSdkVersion 28
  minSdkVersion 21
  targetSdkVersion 28
  implementation com.android.support:appcompat-v7:28.0.0
  implementation com.android.support:support-v4:28.0.0
  implementation com.android.support:design:28.0.0

假设如果我将我的编译和目标 sdk 版本更改为 26,它在 Marshmallow 和 Nougat 设备中是否有效?如果我将 SDK 版本更改为 26 并将支持库更改为 26.0.0,则会出现构建错误,例如 android 资源链接失败。

请帮我解决这个问题,并为我的 android 应用程序提供解决方案,应该支持从棉花糖到馅饼[最新的向前兼容性]。

提前致谢

compileSdkVersiontargetSdkVersion 通常保持相似,通过定义它,您可以告诉应用程序您专门为哪些 android 设备制作应用程序。因此,无论您的 targetSdkVersion 是什么,该应用程序都会 运行 最流畅。

minSdkVersion 是您要定位的最小 sdk。因此,如果您希望支持的最低设备是 Marshmallow,那么该应用将无法用于 api 版本低于 Marshmallow 的设备,事实上,该应用甚至不会出现在游戏商店。

根据您的构建 gradle,我认为您的 buildToolsVersion 不正确。

buildToolsVersion '28.0.3'

按照上面的方法更改您的 buildToolsVersion。

您的 build.gradle 文件没有变化。请继续相同的配置“compileSdkVersion 28 minSdkVersion 21 targetSdkVersion 28 " . 看起来不错

估计apk发布有问题。请重新检查以下常见错误:

  • 你是直接从SD卡安装release apk吗(你不应该直接安装release apk,你需要在play console中发布,然后你才能使用你的apk否则你应该只使用debug apk)
  • 版本号(是否已经使用过)
  • 您是否重命名了您的发布 apk 文件? - 如果你这样做意味着请重命名回旧名称。
  • 更正清单文件中的 API 级别。 (与 build.gradle 文件交叉核对)

大家好感谢您的建议和意见。最后我发现了 Nougat 7.0 版本的问题所在。

gradle 没有这个问题。由于我在项目文件夹中的包名称问题,即 Activities、Services、Utilities、Models 所有包名称都以大写字母开头,因此它抛出一个错误,指出 android 清单文件 android:name 未定义[尝试在 Nougat 设备中安装时无法识别]。

通过在 API 级别 24 和 25 模拟器中安装发布 apk 发现问题,并在 LogCat 中发现错误。

一旦我用小写字母修改了项目中的所有包名称,即活动、服务、实用程序,现在我可以在牛轧糖版本设备中安装发布 apk。

现在无法在 Marshmallow 设备 6.0 中安装它。这次我收到 App is not installed 错误

请告诉我 6.0 版设备缺少什么。

提前致谢