簡體   English   中英

如何在嵌入在 Android 中的 Flutter 應用程序中使用 --dart-define

[英]How to use --dart-define in a Flutter app embdedded in Android

我正在將 Flutter 應用程序作為模塊嵌入到現有 Android 應用程序中( https://flutter.dev/docs Isetup/add- to-app/android/project/)使用“--dart-define”來定義編譯時常量。 嘗試使用./gradlew -Ddart-define=myVal=Value沒有任何運氣。

在構建典型的 Flutter 應用程序時,我將使用flutter命令。 就我而言,我將繼續使用gradlew來構建我的應用程序,目前還不清楚如何傳入 --dart-define 常量。

如果您的項目依賴於 Android 存檔 (AAR)。

您可以在命令行中傳遞dart-defines

flutter build aar --dart-define=myVal=Value

如果您的項目依賴於模塊的源代碼。

您可以在您的 android 宿主項目目錄(或yourHostProject/yourFlutter/.android/Flutter/目錄)中的gradle.properties中設置dart-define

--dart-define=myVal=Value 

解釋

  • .android/Flutter/build.gradle腳本執行"$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"腳本。 執行flutter.gradle時,您的 dart 文件將被編譯為原生代碼。

  • flutter.gradle loads dart-defines from the .android/Flutter project instance ( flutter.gradle#731-L734 ) and then, use it ( flutter.gradle#L1091-L1093 ).

  • 要設置項目實例值,請將--dart-define=myVal=Value添加到gradle.properties中。 (如果您有多個gradle.properties文件,請考慮配置順序( Gradle 文檔中的 Gradle 屬性)。

配置

在 android 工作室中,您可以編輯運行配置(按下“運行”按鈕附近的下拉菜單 ->“編輯配置...”)並在那里定義變量(“附加運行參數:”行):

--dart-define="http_serv=http://10.0.2.2:42627/" --dart-define="websocket=ws://10.0.2.2:42627/websocket"

在代碼中獲取變量:

final checkArgs = String.fromEnvironment('http_serv', defaultValue: '');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM