android - 使用flutterdownloader的flutter android gradle错误
问题描述
我已经在我的项目中实现了flutterDownloader(它是一个用于在flutter中下载文件的包),当我像文档所说的那样将它添加到android清单时,当我这样做时,gradle会显示这个错误
**错误 : **
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:generateDebugBuildConfig'.
> org.xml.sax.SAXParseException; systemId: file:/C:/Users/fahmi/mscmu/android/app/src/main/AndroidManifest.xml; lineNumber: 27; columnNumber: 35; The prefix "tools" for attribute "tools:node" associated with an element type "provider" is not bound.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 15s
Exception: Gradle task assembleDebug failed with exit code 1
我的 android 清单-> Android 清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kivoc99.mscmu">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name="io.flutter.app.FlutterApplication"
android:label="mscmu"
android:icon="@mipmap/ic_launcher">
<provider
android:name="vn.hunghd.flutterdownloader.DownloadedFileProvider"
android:authorities="${applicationId}.flutter_downloader.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
tools:node="remove" />
<provider
android:name="vn.hunghd.flutterdownloader.FlutterDownloaderInitializer"
android:authorities="${applicationId}.flutter-downloader-init"
android:exported="false">
<!-- changes this number to configure the maximum number of concurrent tasks -->
<meta-data
android:name="vn.hunghd.flutterdownloader.MAX_CONCURRENT_TASKS"
android:value="5" />
</provider>
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<!-- Displays an Android View that continues showing the launch screen
Drawable until Flutter paints its first frame, then this splash
screen fades out. A splash screen is useful to avoid any visual
gap between the end of Android's launch screen and the painting of
Flutter's first frame. -->
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background"
/>
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest>
这里有什么问题 ?我试图完全按照文档所说的去做,有什么帮助吗?
解决方案
您必须将 tools 属性绑定到您的清单元素:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="[YOUR APP NAME]" xmlns:tools="http://schemas.android.com/tools" >
推荐阅读
- docker - 使用 buildkit 构建时如何附加到中间 docker 容器
- snowflake-cloud-data-platform - 查询以获取雪花中所有角色及其关联用户的列表
- hive - 转换分区列后Hive分区列有分区效果吗?
- python - 我应该如何使用 python 在 url 中拆分和获取一些 id 信息
- spring-boot - Springboot 应用程序未部署在 Wildfly 上
- python - Python和Sublime:无法打开文件
- javascript - 如何在 React 中使用映射从数组创建 Material-UI 嵌套样式对象
- arrays - 如何将 2D 文本文件转换为 2D 数组(Scala)
- python - 如何修复错误 NameError:名称“questions_test”未在基本多项选择测验程序中定义
- angular - 实现自定义可观察类型的延迟