【发布时间】:2022-01-17 20:42:27
【问题描述】:
我目前正在尝试使用 Kotlin 为 Flutter App 开发一个包。我的问题是我需要为包提供一个配置文件,该文件只能在主应用程序中定义。由于 Dev 和 Prod 环境的配置不同,应用程序应该通过方法通道传递文件的路径。问题是包无法访问调用应用程序的资产文件夹。
路径:"assets/config.json"(根为主应用)
我已经尝试过的步骤:
-
在 res/raw 中创建文件并通过 ressource id 访问配置文件 -> Kotlin 给我一个“未解决的引用”错误,除非我在包 res/raw 中创建文件
-
我没有通过路径,而是尝试通过配置的内容并将其写入一个空的临时文件。 Kotlin 中的代码是这样的:
val config = File(applicationContext.filesDir,"config.json") config.writeText(configContent)
-> 这行得通,但它似乎是一个奇怪的问题解决方案。
如果我需要提供更多信息,请告诉我并提前感谢您!
编辑:
初始化期间调用的Java方法:
public static void createMultipleAccountPublicClientApplication(@NonNull final Context context,
@NonNull final File configFile,
@NonNull final IMultipleAccountApplicationCreatedListener listener)
【问题讨论】:
-
如您所见,您需要将资产写入某个文件中的某个位置(如果它确实必须是一个文件)。您可以按照您显示的方式进行操作,或者让 Dart 将其写入您创建的临时文件,例如
path_provider,然后通过通道传递文件名。这确实提出了为什么你的插件需要一个文件的问题。例如,它不能从内存中的字符串解析其配置吗? -
感谢您的回答!我基于此插件的库需要在初始化期间从文件中解析配置。 (我将添加一个示例作为编辑)应用程序应该在哪里创建此文件,以便插件可以访问它?是否有与我在 Dart 示例中显示的 filesDir 的等价物?
标签: android flutter kotlin dart package