我正在尝试将资产从 flutter 项目“asset”文件夹加载到本机代码中。例如,我希望这个文件
/assets/labels.txt
(Flutter 文件夹)将其加载到路径 android/app/main/kotlin/MainActivity.kt
的 Kotlin 脚本中。
我成功将 Flutter 连接到 Kotlin,但在尝试加载它时出现错误。
class MainActivity : FlutterActivity() {
private val CHANNEL = "your_channel_name"
private val LABELS_PATH = "assets/labels.txt" //
private fun loadLabels() {
try {
Log.d("LoadLabels", "Loading labels...")
val reader = BufferedReader(InputStreamReader(assets.open(LABELS_PATH)))
labels = reader.readLines()
reader.close()
labels.forEach { line ->
Log.d("TextFileContent", line)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
// ...
}
这些是我的错误:
D/LoadLabels(11123):正在加载标签...
W/System.err(11123):java.io.FileNotFoundException:assets/labels.txt
所以我的问题是这样的:
我必须始终从 Flutter 项目文件夹或本机代码脚本所在的同一文件夹加载资源?另外我这里的错误是什么?
谢谢。
在as中分析你的flutter apk,你会发现它有这样的目录结构
现在假设我需要加载pic_app_logo.png,那么代码应该是这样的
context.assets.open("flutter_assets/packages/pkg_res/assets/images/common/login/pic_app_logo.png")