【问题标题】:Fail to decrease API减少 API 失败
【发布时间】:2018-04-28 19:26:42
【问题描述】:

我正在开发一个应用程序。该应用程序在 Android 7.x.x 中运行,但是当我尝试在 Android 5.x.x 中运行该应用程序时,应用程序崩溃了。我认为这是因为 compileSdkVersion 是 API 25。当我尝试将其更改为 API 21(ANDROID 5)时,我遇到了一些错误。在 Android 5 中我可以对我的应用程序执行哪些操作?

ps:我不知道该应用是否在 Android 6 中运行,但可能无法运行。

build.gradle

android {
compileSdkVersion 25
buildToolsVersion '26.0.2'
defaultConfig {
    applicationId "project.id"
    minSdkVersion 16
    targetSdkVersion 16
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

当我尝试将 compileSdkVersion 更改为 API 21 时,出现以下错误:

Error:resource android:style/TextAppearance.Material.Widget.Button.Borderless.Colored not found.
Error:resource android:style/TextAppearance.Material.Widget.Button.Colored not found.
Error:resource android:style/TextAppearance.Material.Widget.Button.Inverse not found.
Error:resource android:style/Widget.Material.Button.Colored not found.
Error:failed linking references.
Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:processDebugResources'.

执行 aapt 失败

【问题讨论】:

  • 不确定问题,但你应该看看compile & targetSDK。您的 targetSDK 应始终设置为最新的 Android,以确保应用程序可以在最新的 Android 手机上运行。
  • 没有。您可以将其设置得更低。请阅读您的链接。 @Tobias Hvass Mølbak

标签: android sdk


【解决方案1】:

您的compileSdkVersion 必须与支持库匹配。所以在你的 build.gradle

中把它改成 26
compileSdkVersion 26
buildToolsVersion '26.0.2'
compile 'com.android.support:appcompat-v7:26.0.2'

targetSdkVersion 应该表明您已经在(可能达到并包括)您指定的版本上测试了您的应用程序。可选,但也应该是 26。

它也可能导致应用程序强制关闭的支持库错误。见:InflateException with FloatingActionButton from Official Design Library

【讨论】:

  • Not necessarily,因为构建工具支持旧版本。
  • @TobiasHvassMølbak 否,您的编译 SDK 版本必须与支持库的主要版本匹配。见:stackoverflow.com/a/32075678/5282585
  • 我想念你的声明。猜猜 build.gradle 让我想到了 buildtoolsversion(正如我在评论中所写的那样)。
  • 对,现在我没有编译错误 :) 但是应用程序仍然在 android 5 中强制关闭。我有一个带有 android 7 的设备和一个带有 android 8.1.1 的虚拟设备,该应用程序可以工作很好,但是使用运行 android 5 的虚拟设备,应用程序强制关闭....
  • 按照我上面@TonyStarkus 所写的更改后?您是否尝试在 Android 5.1 或 Android 4.4 上运行应用?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 2015-07-06
  • 2022-06-23
  • 2019-02-26
  • 1970-01-01
相关资源
最近更新 更多