我有多个目标为SDK 26
的应用,并且众所周知,自从Google对Play商店SDK
的要求应用了新规则以来,我必须将目标SDK
更新为28,其中涉及一个很多更新!
最近几天我尝试进行更新,但遇到很多错误:
因此,在确定要更新为目标API 26
之前,我将一切都重新设置为目标API 28
在应用上进行了一些更改。
我的问题:为避免此类冲突,我必须使用的最佳方法/预期和最佳Android Studio版本是什么?
答案 0 :(得分:0)
面对问题中提到的几个问题后,我成功地将项目的targetSdkVersion
和compileSdkVersion
更新为28
,在这里我将写出我遵循的所有步骤以及我做了改变。
1-将我的android studio更新到最新版本
2-更新我的gradle插件版本,gradle版本(5.4.1)
dependencies {
classpath 'com.android.tools.build:gradle:3.5.1'
.........
}
3-迁移到androidx
库
4-将所有第3个库(Firebase,google play服务,毕加索,.....)更新为最新版本
implementation 'com.google.firebase:firebase-appindexing:19.0.0'
implementation 'com.google.android.gms:play-services-places:17.0.0'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.github.f0ris.sweetalert:library:1.5.1'
implementation 'com.google.firebase:firebase-messaging:20.0.1'
..........
..........
5-将google-services
插件版本更新为最新版本
dependencies {
........
classpath 'com.google.gms:google-services:4.3.3'
}
6-在项目gradle中添加google()
存储库
repositories {
jcenter()
google()
}
allprojects {
repositories {
jcenter()
mavenCentral()
maven {
url 'https://maven.google.com'
}
google()
}
}
7-在Java gradle中将Java 8添加为compileOption
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
对于更改,它实际上取决于您使用的小部件和库,但通常应提及一些重要点:
1。启用对所有类型的HTTP和HTTPS连接的请求
将usesCleartextTraffic
添加到AndroidManifest.xml
<application
...
android:usesCleartextTraffic="true"
...>
指示应用程序是否打算使用明文网络流量,例如明文 HTTP 。目标为API
级27
或更低的应用程序的默认值为"true"
。定位到API
级28
或更高级别的应用默认为"false"
。
2-弃用和方法更改
某些方法将被提及为已弃用甚至找不到,因此请确保将检查代码的每一行以更新或重写可疑方法
3-小部件属性弃用
如上所述,某些小部件可能与之前完成的更新有关,因此请确保检查布局是否过时或出现问题
NB:
如果有什么要注意或在此处添加的内容,那就太好了。希望将来对别人有帮助。