从棉花糖到Pie,我应该为compileSdkVersion,minSdkVersion和targetSdkVersion设置什么?

时间:2019-03-08 04:02:28

标签: android android-gradle build.gradle android-version

我的android应用程序能够在Oreo&Pie中安装而没有任何问题。如果我尝试在棉花糖和牛轧糖版本的手机中安装发行版本,则会引发错误“解析程序包时出错”,请在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,它可以在棉花糖和牛轧糖设备中使用吗?如果我将SDK版本更改为26,将支持库更改为26.0.0,则会出现构建错误,例如android资源链接失败。

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

预先感谢

4 个答案:

答案 0 :(得分:2)

按照您的构建标准,我认为您的buildToolsVersion不正确。

buildToolsVersion '28.0.3'

按照上述步骤更改buildToolsVersion。

答案 1 :(得分:1)

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

我猜发行版apk中有问题。请重新检查以下常见错误:

  • 您是要直接从SD卡安装发行版apk吗?(您不应该直接安装发行版apk,您需要在Play控制台中进行发布,那么只有您可以使用自己的apk,否则您只能使用debug apk)
  • 版本号(是否尚未使用)
  • 您是否已重命名发布的APK文件? -如果这样做的话,请重命名回旧名称。
  • 更正清单文件中的API级别。 (与build.gradle文件进行交叉检查)

答案 2 :(得分:0)

大家好,谢谢您的建议和评论。最后,我发现了牛轧糖7.0版本中的问题是什么。

问题不存在。由于我的项目名称位于项目文件夹(即“活动”,“服务”,“实用工具”,“模型”)中,因此所有软件包名称均以大写字母开头,因此引发错误,提示在Android清单文件 android:name 中未已定义[尝试在Nougat设备上安装时无法识别]。

通过在API Level 24和25模拟器中安装发行版APK发现问题,并在LogCat中发现错误。

一旦我用小写字母(即活动,服务,实用程序)修改了项目中的所有软件包名称,现在就可以在Nougat版本设备中安装发行版APK。

现在无法在棉花糖设备6.0中安装它。这次出现未安装应用错误

请让我知道6.0版设备缺少的内容。

预先感谢

答案 3 :(得分:-1)

compileSdkVersiontargetSdkVersion通常保持相似,并且通过定义此名称,您可以告诉应用您专门为该应用开发的Android设备。因此,无论您的targetSdkVersion是什么,应用程序都将在此过程中最流畅地运行。

minSdkVersion是您要定位的最小sdk。因此,如果您希望支持的最低设备为Marshmallow,则该应用程序将不适用于api版本低于Marshmallow的设备,实际上,该应用程序甚至不会出现在playstore中。