我正在开发一个Unity(Unity3D 5.3.5F1)项目,使用IKVM8.1RC0转换成dll的Java库(另外使用VS进行C#开发)
我将几个相关的JAR转换为一个dll文件。转换序列时没有警告或错误。并将它们放入Unity Project的资产文件夹中。
using UnityEngine;
using com.mypackage.hierarchy1;
using com.mypackage.hierarchy2; // Same as the package name from Java
public class Test : MonoBehaviour {
...... // several variables
private Class1 var1;
private Class2 var2;
// note that, Class1 and Class2 are the same name used in Java
void Start() {
var1 = new Class1();
var2 = new Class2();
}
void Update() {
method1(certain_param_in_int);
}
......
void method1(int param) {
method2(param, param2, param3,...);
}
void method2(int param, string param2, int param3, int param4) {
var1.method_v1(param, param2,...); // Works well with no problem
var2.initialize("str", var1.getResult(), "anotherstr");
var2.run(); // This method occurs the problem
}
}
NullReferenceException: Object reference not set to an instance of an object
com.mypackage.hierarchy2.Class2.run ()
Test.method2 (Int32 param, System.String param2, Int32 param3, Int32 param4) (at Assets/Scripts/Test.cs:93)
Test.method1 (Int32 param) (at Assets/Scripts/Test.cs:66)
Test.Update () (at Assets/Scripts/Test.cs:33)
因此,在调用val2.run()之前,我通过使用debug.log()检查var2==null和var2.equals(null),测试它是否为null,但它们都显示为“false”。它们不为空。
问题出在哪里?我是否应该更改Java端代码并重新生成DLL?
多谢了。
我发现这是我们自己代码的错误,而不是java代码本身的错误。配置。
快速总结: 我的IKVM编译的JAR-to-DLL库与.NET项目中的一些方法和类一起工作,但一个特定的库抛出了一个异常,似乎表明我的IKVM.Runtime.jni试图将一个64位地址存储到一个32位变量中,而我希望整个系统是32位的。这会引发IllegalArgumentException。 汇编 首先,我编译log4j JAR: 大约有20个左右的警告处理javax.jms.*和javax.
我很难尝试将我的.jar库转换为.dll并使其通过IKVM框架工作。我编写了一个Java库,由于它已经在几个Java项目中进行了成功的测试,所以运行良好,但我强烈需要.NET的.dll。 启动命令时: 一切都是好的(我也尝试了一个主文件,以确定:它可以工作)。 但是,当我键入: 我得到了很多警告,但它仍然创建了.dll文件。很重要的一点是,所有的警告都与我在项目中没有使用的库有关,但我很确定我在M
本文向大家介绍C++调用C#的DLL实现方法,包括了C++调用C#的DLL实现方法的使用技巧和注意事项,需要的朋友参考一下 SwfDotNet是C#编写的,这是个特别好的读写Swf文件的库。本文讲述了在C++项目中,怎么让C++调用C#的DLL动态链接库文件。 具体的实现步骤如下: 一、创建C# DLL,需要指定应用类型为“类库”,代码: 二、C++客户程序,是个控制台应用,代码: 三、这里有几点
我正在使用IKVM将java jar文件转换为C#DLL。这个jar文件有几个依赖项,我通过-r:reference.dll引用了所有这些依赖项。 类“org.eclipse.swt.widgets.control”是在“org.eclipse.swt.win32.win32.x863.5.2.v3557f.dll”中声明的,在使用ikvm将其编译为DLL时,该类没有错误。 提前致谢
问题内容: 我已经看到了一些关于此的文章,但是到目前为止,我还没有看到任何解决方案。我有一个.jar文件,正在通过IKVM转换为.NET DLL 。我试图找出如何使excel VBA环境中的DLL中的方法可用。这是详细信息。 1.)安装IKVM并将其DLL注册到GAC 2.)运行IKVM创建一个.net .dll(mytest.dll) 3.)注册了新的.dll 4.)从这里我创建了一个VB.NE
问题内容: 我正在将Java用于小型应用程序。这是对现有MFC项目的重写。我需要更改一个现有的dll,以启用使用JNI从Java进行的访问。所有这些Java知识对我来说都是新手,因此当我阅读其他论坛帖子时遇到了一些麻烦,并且感觉比较密集。在现有的dll中,我具有如下功能: 愚蠢的提问时间。如何正确设置它以被Java调用? 我尝试了这个: 我包括jni.h,一切编译正常。但是,当我从Java调用它时