将目标API级别更改为28 SDK

时间:2019-09-26 20:31:19

标签: android target android-api-levels

要将目标SDK更改为28,我在build.gradle中做了以下操作:

android {
      compileSdkVersion 28

      defaultConfig {
        targetSdkVersion 28

   ...
      dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support:appcompat-v7:28.0.0' //-- line with error
implementation 'com.android.support:design:28.0.0' //-- line with error
implementation 'com.android.support:support-annotations:28.0.0'

implementation 'com.squareup.okhttp3:okhttp:3.9.1'
implementation "com.google.code.gson:gson:2.8.2"
implementation files('libs/commons-io-2.4.jar')
implementation files('libs/WebtrendsAndroidClientLib.jar')

// Urban Airship  -- Start
api 'com.urbanairship.android:urbanairship-sdk:9.0.0'

// Recommended for in-app messages
implementation 'com.android.support:cardview-v7:28.0.0' //-- line with error

// We need to add these to force Urban AirShip and Google play services to use latest version.
implementation 'com.android.support:animated-vector-drawable:28.0.0' //-- line with error
implementation 'com.android.support:mediarouter-v7:28.0.0' //-- line with error

implementation "com.google.android.gms:play-services:11.8.0"

// Urban Airship  -- End

//-- third party lib
implementation 'com.github.barteksc:android-pdf-viewer:2.4.0'
implementation 'com.sothree.slidinguppanel:library:3.3.0'
implementation 'com.google.maps.android:android-maps-utils:0.5+'

//api 'at.favre.lib', name: 'bytes', version: '0.2.0'
api 'at.favre.lib:bytes:0.2.0'

implementation 'com.android.support.constraint:constraint-layout:1.1.3'

}

但是在Android Studio IDE中,它显示以下行的错误:

     com.android.support:appcompat-v7:28.0.0

和说明:

enter image description here

如果我在此行中添加注释,则下一行具有“ 28.0.0”的内容将具有相同的错误。因此,似乎所有带有“ 28.0.0”的字符都没有生效。

我做错了什么?

更新为“依赖项”中的完整内容,并标记每个有错误的实现。每个错误与图片中的描述完全相同

顺便说一句,尝试了以下URL:All com.android.support libraries must use the exact same version specification中的解决方案,但它对我完全不起作用,并且会发生相同的错误。

**关于注释**的注释:网址All com.android.support libraries must use the exact same version specification中的解决方案确实有效。您需要“同步”项目。

谢谢

肖恩

2 个答案:

答案 0 :(得分:2)

修改 在您的依赖项中使用它

implementation 'com,android.support:support-v4:28.0.0'

尝试一下,让我知道是否解决了问题。

答案 1 :(得分:0)

此警告表明您正在使用的库版本可能会发生冲突并导致某些运行时问题。不过,这不是错误-您仍然可以构建和运行项目-但是在某些情况下可能会出现异常。

要消除警告,您必须将所有Google库更新为相同版本。

从问题中我可以看到-您已经做到了。但是,有一个问题-您正在使用的其他库可能做得不是很彻底(或者是它们的性质),并且它们正在泄漏其内部google库的依赖关系。绝对是因为您更改了gradle中的所有显式警告后,此警告仍然保留。

您有几种选择可以解决此错误

  • 尝试将所有第三方库更新到最新版本-也许他们的开发人员已经更新了它们
  • 找出哪个库导致出现此警告,然后对其进行更新,删除或将其更改为与您应用的当前目标API兼容的相似库。
  • 使用
{
    transitive = false;
}

对于导致中断的库,也许,如果库设计精良,警告将消失并且您的代码将保持其工作状态。 (极不可能)

  • 最后一个选择是不要太在意。通常我使用此选项。我从没有遇到过麻烦。

希望有帮助。