生成和导入 dex 文件
2025-06-08 14:32:21 最后更新

创建 Java 类

注意需要导出的类必须使用 public 修饰。

package com.iuroc.demo;

public class Util {
    int sum(int a, int b) {
        return a + b;
    }
}

生成 .class 文件

javac com/iuroc/demo/Util.java

以上代码将生成 com/iuroc/demo/Util.class

生成 .dex 文件

d8 --output out com/iuroc/demo/Util.class

以上代码将在 out 目录生成 .dex 文件列表。

导入 .dex 文件

  1. 将生成的 .dex 文件复制到 iApp 裕语言 3.0 项目的 res 目录中。
  2. 创建 module.mjava 文件:

    import android.content.Context;
    import dalvik.system.DexClassLoader;
    
    DexClassLoader loadDex(String dexPath)
    {
        String[] parts = dexPath.split("/");
        String newDexPath = activity.getFilesDir() + "/" + parts[parts.length - 1];
        boolean result = i.fc(dexPath, newDexPath);
        String optimizedDir = activity.getDir("dex_opt", Context.MODE_PRIVATE).getAbsolutePath();
        DexClassLoader classLoader = new DexClassLoader( newDexPath, optimizedDir, null, activity.getClassLoader());
        return classLoader;
    }
  3. 在裕语言中调用:
    call(data, "mjava", "module.loadDex", "@classes.dex")
    cls(data, "com.iuroc.demo.Util", Util)
    javanew(util, Util)
    javax(result, util, Util, "sum", "int", 1, "int", 2)
    tw(result)