You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:05:27