如何用Gradle为Flutter项目添加JAR库?操作遇阻求助
问题描述
在Flutter 3.19项目中尝试添加JAR库时,收到操作提示但点击后无任何响应。当前环境:Gradle 7.6.3,Flutter 3.19。
已做尝试:
- 修改了Android模块下的
build.gradle.kts(代码见下方),但依赖未生效 - 通过
Project Settings->Libraries添加库,库已显示在External Libraries中,但项目无法调用其中的类
当前修改的build.gradle.kts代码:
// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. plugins { `java-gradle-plugin` `groovy` } group = "dev.flutter.plugin" version = "1.0.0" gradlePlugin { plugins { // The "flutterPlugin" name isn't used anywhere. create("flutterPlugin") { id = "dev.flutter.flutter-gradle-plugin" implementationClass = "FlutterPlugin" } // The "flutterAppPluginLoaderPlugin" name isn't used anywhere. create("flutterAppPluginLoaderPlugin") { id = "dev.flutter.flutter-plugin-loader" implementationClass = "FlutterAppPluginLoaderPlugin" } } } configurations { all{ exclude (group = "xpp3",module = "xpp3") } all{ exclude(group = "xpp3", module = "xpp3_min") } } dependencies { // When bumping, also update: // * ndkVersion in FlutterExtension in packages/flutter_tools/gradle/src/main/flutter.groovy // * AGP version constants in packages/flutter_tools/lib/src/android/gradle_utils.dart // * AGP version in buildscript block in packages/flutter_tools/gradle/src/main/flutter.groovy compileOnly ("com.android.tools.build:gradle:8.0.0") api ("org.igniterealtime.smack:smack-android-extensions:4.4.6") api ("org.igniterealtime.smack:smack-tcp:4.4.6") }
解决方案
1. 修正Gradle文件修改位置
你现在改的是Flutter官方内置gradle插件的配置文件,不是你自己项目的依赖配置文件!正确的文件是项目目录下的android/app/build.gradle.kts(如果是Groovy格式则是android/app/build.gradle)。
2. 正确引入JAR库的两种方式
方式一:本地JAR文件
- 把你的JAR文件复制到
android/app/libs目录(没有就新建一个) - 在
android/app/build.gradle.kts的dependencies块里加一行:dependencies { // 保留原有其他依赖 implementation(files("libs/你的JAR文件名.jar")) }
方式二:Maven仓库依赖
如果你的JAR库在Maven仓库(比如你尝试添加的smack库),直接在android/app/build.gradle.kts的dependencies块添加:
dependencies { // 保留原有其他依赖 implementation("org.igniterealtime.smack:smack-android-extensions:4.4.6") implementation("org.igniterealtime.smack:smack-tcp:4.4.6") }
3. 解决点击提示无响应的问题
- 先执行终端命令
flutter clean清理项目缓存 - 手动点击Android Studio右上角的「Sync Project with Gradle Files」按钮触发同步
- 如果还是没反应,重启Android Studio后再尝试同步
4. 验证依赖是否生效
同步完成后,检查External Libraries里是否有目标库,然后在Android原生代码中尝试import库中的类,能正常引用就说明生效了。
内容的提问来源于stack exchange,提问作者Liu
相关产品推荐
相关产品推荐

