我正在将 Flutter 应用程序作为模块嵌入到现有的 Android 应用程序中(https://flutter.dev/docs/development/add-to-app/android/project-setup),并且想知道我是否/如何可以使用“--dart-define”定义编译时常量。尝试使用./gradlew -Ddart-define=myVal=Value但没有任何运气。
在构建典型的 Flutter 应用程序时,我会使用该flutter命令。就我而言,我继续使用它gradlew来构建我的应用程序,但不清楚如何传入 --dart-define 常量。
在 android studio 中,您可以编辑运行配置(按“运行”按钮附近的下拉菜单 ->“编辑配置...”)并在那里定义变量(“附加运行参数:”行):
--dart-define="http_serv=http://10.0.2.2:42627/" --dart-define="websocket=ws://10.0.2.2:42627/websocket"
Run Code Online (Sandbox Code Playgroud)
在代码中获取变量:
const checkArgs = String.fromEnvironment('http_serv', defaultValue: '');
Run Code Online (Sandbox Code Playgroud)
小智 3
如果您的项目依赖于 Android Archive (AAR)。
\ndart-defines您可以在命令行中传递。
flutter build aar --dart-define=myVal=Value
如果你的项目依赖于 module\xe2\x80\x99s 源代码。
\n您可以在 Android 宿主项目目录 \xef\xbc\x88 或目录 \xef\xbc\x89dart-define中设置 s 。gradle.propertiesyourHostProject/yourFlutter/.android/Flutter/
--dart-define=myVal=Value \nRun Code Online (Sandbox Code Playgroud)\n解释
\n.android/Flutter/build.gradle脚本执行"$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"脚本。执行时flutter.gradle,您的 dart 文件将被编译为本机代码。
flutter.gradle从.android/Flutter项目实例 \xef\xbc\x88 flutter.gradle#731-L734加载 dart-defines ),然后使用它(flutter.gradle#L1091-L1093)。
要设置项目实例值,您可以添加--dart-define=myVal=Value到gradle.properties. (如果您有多个gradle.properties文件,请考虑 Gradle Docs 中的配置 order\xef\xbc\x88 Gradle 属性)。
| 归档时间: |
|
| 查看次数: |
15154 次 |
| 最近记录: |