【问题标题】:downgrading from sdk 23 to 22 android从 sdk 23 降级到 22 android
【发布时间】:2016-09-23 21:47:46
【问题描述】:

我决定将我的 api 级别从 23 降低到 22。首先,我下载了安装了最新 23 API 的 android studio。我现在安装了 22 API,但我不知道我是否安装了其他东西,例如:

compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:design:22.2.0'

如果安装了这些,找不到在哪里查看...所以这就是我的清单的样子:

 apply plugin: 'com.android.application'

android {
compileSdkVersion 22 //changed this, used to be 23
buildToolsVersion "22.0.0" //changed this also, but I don't know if it's installed....

defaultConfig {
    applicationId "xxx"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 11
    versionName "2.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
sourceSets { main { java.srcDirs = ['src/main/java', 'libs'] } }
}

repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile('com.twitter.sdk.android:tweet-composer:1.0.2@aar') {
    transitive = true;
}
compile 'com.android.support:multidex:1.0.0'
compile 'com.android.support:appcompat-v7:22.2.0'//changed this also, but I don't know if it's installed....
compile 'com.android.support:design:22.2.0'//changed this also, but I don't know if it's installed....
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.facebook.android:facebook-android-sdk:4.+'
compile 'com.google.android.gms:play-services-identity:8.4.0'
}

所以当我尝试同步时,它给了我这个废话:

C:\Users\jonathan\AndroidStudioProjects\TrashOmeter\app\build\intermediates\res\merged\debug\values-v23\values-v23.xml 错误:(18) 检索项目的父项时出错:未找到与给定名称“android:Widget.Material.Button.Colored”匹配的资源。 错误:(3) 检索项目的父项时出错:未找到与给定名称“android:TextAppearance.Material.Widget.Button.Inverse”匹配的资源。 错误:任务 ':app:processDebugResources' 执行失败。

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\jonathan\AppData\Local\Android\sdk\build-tools\22.0. 0\aapt.exe'' 以非零退出值 1 结束

如何让它正确编译22个sdk???

【问题讨论】:

    标签: android build sdk compiler-errors version


    【解决方案1】:

    如果您已经在 google play 上上传了您的 apk (sdk 23),您将无法从 SDK 23 降级到 22。商店不会让你。

    我已经犯了这个错误,现在我的APP与没有犯这个错误的竞争对手相比处于劣势。

    所以不要使用 SDK 23,如果他们必须为您的应用启用 LOCATION 会让您的用户生气(访问 wifi 频道列表是我的应用的主要目的)

    【讨论】:

    • 我有同样的问题亚当,我已经上传了一个带有 targetSdkVersion 23 的应用程序。当我尝试在 Play 商店更新该应用程序时,我不想将其降级到 21/20。它给了我错误。
    • 最后,google 需要在 google play 上使用最新的 SDK。所以如果过去有人错误地升级了应用程序,将来也不会像现在这样处于劣势。当然,如果应用没有更新,它仍然可以使用旧的 SDK 22。来源:android-developers.googleblog.com/2017/12/…
    【解决方案2】:

    我决定将我的 api 级别从 23 降低到 22

    鉴于您的 build.gradle 文件中的 cmets,您的意思似乎是将您的 compileSdkVersion 减少到 22。

    我不知道你为什么要这么做。

    提升compileSdkVersion 到一个更新的级别是完全合理的,并且需要使用一些更新版本的依赖项(更不用说来自您自己的代码的任何新引用)。我知道现代 Android 开发中没有任何问题可以通过 reducing compileSdkVersion 解决。你似乎在给自己带来痛苦,却没有任何实际的好处。

    我现在安装了 22 API,但我不知道我是否安装了其他类似的东西

    如果您在 SDK 管理器中有一个最新的“Android 存储库”,那么您就有的是旧版本的 Android 支持库。

    //这个也改了,不知道有没有安装...

    如果您在 SDK 管理器中有最新的“构建工具”,那么您有旧版本的 Android 支持库。

    所以当我尝试同步时,它给了我这个废话:

    那个“废话”是因为您决定将 compileSdkVersion 更改为 22,但没有将您的依赖项更改为类似的旧版本。您当前的依赖版本是使用 API 级别 23 中的内容(在本例中为资源)的引用编写的,并且需要 compileSdkVersion 23。

    如何让它正确地用 22 sdk 编译?

    将依赖项的版本减少到 API 级别 23 存在之前的版本。对于您从 Maven Central 或 JCenter 获得的那些(例如,facebook-android-sdk),您可能可以从他们的 Web 界面,并尝试找到 2015 年 8 月或更早的界面。剩下的……你自己一个人。

    或者,将您的 compileSdkVersion 改回 23。

    【讨论】:

    • 我有类似的问题,当我将 compileSdkVersion 更改为 Google Inc.:Google APIs:23 时发生此错误。如何解决这个问题?我已经在使用最新的构建工具、Studio、库和 gradle 版本。
    • facebook 只需要 API 15,所以没问题。我不确定其余的,但是当我尝试同步应用程序 gradle 文件时,它总是想将我的 appcompat 和设计依赖项更改回 23 我不知道为什么...我必须手动将其更改回 22一遍又一遍……
    • @Malwinder:我不知道有任何现代理由拥有 compileSdkVersion 值。使用 Google APIs 构建目标适用于 Maps V1,该 API 已于多年前停止使用。
    • @CommonsWare 哦。但是我的项目在创建时默认有这个版本。
    • @JonathanVukadinovic:您的依赖项之一具有传递依赖项,指定了这些支持库的更高版本。运行 Gradle 依赖项报告应该可以帮助您隔离执行该操作的依赖项。这将使您能够专注于查找该依赖项的旧版本,它不依赖于较新的支持库。
    【解决方案3】:

    感谢 CommonsWare,我找到了答案。我不得不将 google play 依赖项更改为较低版本。所以在 gradle 中我改变了:

    发件人:

    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.google.android.gms:play-services-identity:8.4.0'
    

    收件人:

    compile 'com.google.android.gms:play-services:7.3.0'
    compile 'com.google.android.gms:play-services-identity:7.3.0'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-04
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多