[kotlin项目中使用luban配置] 1.java + kotlin共存

1)新建一个kt_json的项目

2)把java_json下的gen.bat复制到项目下,修改好导出json和代码的目录

复制代码
set WORKSPACE=..\..

set LUBAN_DLL=%WORKSPACE%\Tools\Luban\Luban.dll
set CONF_ROOT=%WORKSPACE%\DataTables

dotnet %LUBAN_DLL% ^
    -t all ^
    -c java-json ^
    -d json  ^
    --conf %CONF_ROOT%\luban.conf ^
    -x outputCodeDir=src\main\java\cfg ^
    -x outputDataDir=json ^
    -x pathValidator.rootDir=%WORKSPACE%\Projects\Csharp_Unity_bin ^
    -x l10n.provider=default ^
    -x l10n.textFile.path=*@%WORKSPACE%\DataTables\Datas\l10n\texts.json ^
    -x l10n.textFile.keyFieldName=key

pause

重点!!! java的代码必须在 src/main/java 目录下!!!

3)加载luban配置文件

复制代码
import cfg.Tables
import cfg.Tables.IJsonLoader
import com.google.gson.JsonParser
import java.nio.file.Files
import java.nio.file.Paths

/*
加载luban配置文件
 */
object TableManager {
    lateinit var tables: Tables

    fun init() {
        tables = Tables(IJsonLoader { file: String? ->
            JsonParser.parseString(
                String(Files.readAllBytes(Paths.get("json", file + ".json")), charset("UTF-8"))
            )
        })
    }
}

4)写kotlin测试用例

运行结果:

复制代码
== run == 1101001101
== x7 == [1, 2, 3, 4]

一切ok!!!

相关推荐
plainGeekDev9 小时前
Activity 间传值 → Navigation 参数
android·java·kotlin
plainGeekDev9 小时前
onActivityResult → ActivityResult API
android·java·kotlin
alexhilton1 天前
Android车载OS中的Remote Compose
android·kotlin·android jetpack
plainGeekDev2 天前
广播接收器 → Flow + Lifecycle
android·java·kotlin
plainGeekDev2 天前
EventBus → SharedFlow
android·java·kotlin
Kapaseker3 天前
学不动了,入门 Compose Styles API
android·kotlin
plainGeekDev4 天前
MVC 写法 → MVVM
android·java·kotlin
plainGeekDev4 天前
单例模式 → object 声明
android·java·kotlin
rocpp5 天前
Android 多语言切换实战:从 Context 到 Android 13 应用语言适配
android·kotlin
黄林晴6 天前
用了这么久 Koin Scope,原来一直都用错了?
android·kotlin