flutter增加webview功用之后报错 webview_flutter包 Dependency 'androidx.webkit:webkit:1.8.0' requires libraries and applications Dependency 'androidx.browser:browser:1.6.0' requires libraries and applications
在项目开发中需求增加webview,加载内置的html文件,代码写完后ios运转没有问题,运转安卓时报错,过错提示如下:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:checkDebugAarMetadata'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
> 2 issues were found when checking AAR metadata:
1. Dependency 'androidx.webkit:webkit:1.8.0' requires libraries and applications that
depend on it to compile against version 34 or later of the
Android APIs.
:app is currently compiled against android-33.
Also, the maximum recommended compile SDK version for Android Gradle
plugin 7.3.0 is 33.
Recommended action: Update this project's version of the Android Gradle
plugin to one that supports 34, then update this project to use
compileSdkVerion of at least 34.
Note that updating a library or application's compileSdkVersion (which
allows newer APIs to be used) can be done separately from updating
targetSdkVersion (which opts the app in to new runtime behavior) and
minSdkVersion (which determines which devices the app can be installed
on).
2. Dependency 'androidx.browser:browser:1.6.0' requires libraries and applications that
depend on it to compile against version 34 or later of the
Android APIs.
:app is currently compiled against android-33.
过错提示的关键字首要有:Gradle、minSdkVersion、compileSdkVerion、targetSdkVersion
Gradle:
凭借 Gradle 版别目录,您能够以可扩容的方法增加和保护依靠项和插件。运用 Gradle 版别目录,您能够在具有多个模块时更轻松地办理依靠项和插件。您不用对各个 build 文件中的依靠项称号和版别进行硬编码,也不用在每次需求晋级依靠项时都更新每个条目,而是能够创立一个包括依靠项的中心版别目录,各种模块可在 Android Studio 帮助下以类型安全的方法引证该目录。
这是安卓开发者网站的阐明,咱们能够了解为能够经过Gradle去办理不同模块的依靠项和插件。这个今后再说。
minSdkVersion:
运用程序支撑的最低API版别.或许说运用运转所需最低 API 等级的整数。假如体系的 API 等级低于该特点中指定的值,Android 体系将阻挠用户装置运用。
compileSdkVerion:
CompileSdkVersion 指定 Gradle 编译你的 APP 时运用的 Android API 版别,你的 App 能够运用该版别或许更低版别的 API 特性。简略来说,假如你的 APP 在开发中需求用到一些比较新的 API 特性,那么你的 compileSdkVersion 的数值就应该大于或等于相应的 API 等级。
targetSdkVersion:
TargetSdkVersion 依照字面意思了解便是方针 SdkVersion。假如没有设置,则默认值为minSdkVersion。TargetSdkVersion 是 Android 体系完成「前向兼容」的首要手法,当你设置了targetSdkVersion的时分,表明你现已充沛测验过了你的App在该方针版别的运转状况(精确的说应该是从 minSdkVersion 到 targetSdkVersion 区间一切的体系版别),除非更新 targetSdkVersion,不然不改动运用的行为。
从文中咱们能够看出需求咱们把compileSdkVerion版别设置为 34,Gradle 现在的7.3.0只支撑到33,所以Gradle版别也要修正
咱们先修正compileSdkVerion一起把targetSdkVersion也修正到最新:
目录为:android/app/build.gradle
修正后记住保存。
然后修正gradle版别,
首要检查一下gradle对安卓的支撑版别
https://docs.gradle.org/current/userguide/compatibility.html
最新的稳定版应该是8.2,咱们设置8.2试一下
目录:
gradle/wrapper/gradle-wrapper.properties
保存,然后去运转安卓项目,此刻vscode会去下载gradle,要等会,假如下载失利能够经过Andriod Studio来挑选gradle版别,操作如下:
点击ok,Andriod Studio会主动下载gradle。
再次运转就能够了。
自己原来是ios开发,对安卓开发的装备或许存在一些问题,假如文章存在问题,请我们帮助指出,谢谢。
官方文档:
https://developer.android.com/ndk/guides/sdk-versions?hl=zh-cn
https://developer.android.com/guide/topics/manifest/uses-sdk-element?hl=zh-cn
https://developer.android.com/build/migrate-to-catalogs?hl=zh-cn
https://docs.gradle.org/current/userguide/compatibility.html
部分内容引证:
https://blog.csdn.net/crazestone0614/article/details/127979666