具有多个jar的Unity3D(android jar+纯java库)

具有多个jar的Unity3D(android jar+纯java库),java,android,unity3d,Java,Android,Unity3d,我是Unity3D新手,我已经用Java完成了一些项目,这些项目需要包含在我的Unity3D项目中 我想将多个JAR添加到Unity3D项目中,但当JAR在Unity项目中运行时,它们之间似乎没有任何依赖关系 为此, 我尝试将所有与Assets/Plugins/Android文件夹相关的jar添加到带有Android jar的文件夹中,以调用jar的方法 通过创建一个包含所有jar的Android项目,我试图只生成一个jar文件 通过这两种方法,我可以将我的项目构建为基于Android的,但他们

我是Unity3D新手,我已经用Java完成了一些项目,这些项目需要包含在我的Unity3D项目中

我想将多个JAR添加到Unity3D项目中,但当JAR在Unity项目中运行时,它们之间似乎没有任何依赖关系

为此,

我尝试将所有与Assets/Plugins/Android文件夹相关的jar添加到带有Android jar的文件夹中,以调用jar的方法

通过创建一个包含所有jar的Android项目,我试图只生成一个jar文件

通过这两种方法,我可以将我的项目构建为基于Android的,但他们显示出错误,说相关的库不存在

有没有什么方法可以将多个jar库用于Unity3D项目,并依赖于其他jar

换句话说,我想要这个结构

|主项目Unity |-dependency->| Jar lib 1 |-dependency->| Jar lib 2|

jarlib1:我需要直接调用方法的库 jarlib2:lib1使用的库 有什么方法可以将多个jar库用于Unity3D项目吗 依赖于其他罐子

没有

如果您有许多相互依赖的jar库,那么必须将它们组合成一个。是的,这些罐子必须合并成一个罐子,然后你可以搭建一座桥梁,Unity可以使用它来访问它们

jarlib1:我需要直接调用方法的库

jarlib2:lib1使用的库

在这种情况下,您必须在lib1中导入lib2。然后在lib1中生成调用jarlib2中函数的函数。然后可以构建lib1和lib2

在Eclipse中,Projects->buildall。然后将它们导出到一个jar文件中。同样,在Eclipse中,File->Export…->Java->JAR文件。接下来,如果两个LIB都显示,则选择它们。使用以下设置:

爪哇:

//来自Lib/jar2的东西让我们假设这是其中的函数代码

public class Lib2{
    public static Lib2 instance = new Lib2();

    public double getRandomNumber() {
        double advancedRandomNumber = 5;
        return advancedRandomNumber;
    }
}
public class Lib1{
    public static Lib1 instance = new Lib1();

    public double getMagicRandomNumber() {
        double advancedRandomNumber = 15;
        return advancedRandomNumber;
    }

   //Bridge to access Stuff from jar 2
   public double getExtraMagicRandomNumber()
   {
        return Lib2.instance.getRandomNumber();
   }
}
//Lib/jar1com.roxy.app包中的内容让我们假设这是其中的函数代码

public class Lib2{
    public static Lib2 instance = new Lib2();

    public double getRandomNumber() {
        double advancedRandomNumber = 5;
        return advancedRandomNumber;
    }
}
public class Lib1{
    public static Lib1 instance = new Lib1();

    public double getMagicRandomNumber() {
        double advancedRandomNumber = 15;
        return advancedRandomNumber;
    }

   //Bridge to access Stuff from jar 2
   public double getExtraMagicRandomNumber()
   {
        return Lib2.instance.getRandomNumber();
   }
}
C:

并从Lib1中生成的桥接函数调用Lib2中的函数

就这样。这并不难,但可能无法编译,因为我直接将其键入编辑器。可能需要做一些小的修改。

我倾向于忘记它。这不是团结的目的。你付出了巨大的痛苦却毫无收获。
double adRand = androidFunction.Call<double>("getExtraMagicRandomNumber");