Re: Issues with JNI on Mono (IKVM Trunk)

Tommy Ettinger <[email protected]>
Newsgroups gmane.comp.java.ikvm.devel
Message-ID <CAAWSfZPE38rYRry-Cg6qBgaMmV7Y4-5qnxiXDnk_4UzUx2FLCw@mail.gmail.com>
My last message was too long for the list, so here it is with pastebin
links.
With those lines added to App.config, It gives the following output on
Windows 7 in Visual Studio's output window (and nothing new on Mono):
Visual Studio output: http://pastebin.com/6Jpi5FxV
Mono output: http://pastebin.com/BEMyAerk
Thanks for your speedy reply on this, IKVM worked brilliantly until I tried
to get it to run on Mono.  IKVM is a pretty incredible piece of software.


On Wed, Jul 16, 2014 at 6:01 AM, Jeroen Frijters <[email protected]> wrote:

>  Hi Tommy,
>
>
>
> Can you try enabling JNI tracing by adding the following to your
> app.config:
>
>
>
> <system.diagnostics>
>
> <switches>
>
> <add name="jni" value="4" />
>
> </switches>
>
> </system.diagnostics>
>
>
>
> Regards,
>
> Jeroen
>
>
>
> *From:* Tommy Ettinger [mailto:[email protected]]
> *Sent:* Wednesday, July 16, 2014 14:00
> *To:* [email protected]
> *Subject:* [Ikvm-developers] Issues with JNI on Mono (IKVM Trunk)
>
>
>
> I've been struggling for the last two days to port my C# IKVM application
> that uses the Java library libgdx to Linux.  The application works just
> fine on Windows/.NET, but something is wrong with the linking for JNI code
> AFAICT.  Using libgdx you have a choice of backends for how to display
> graphics, one of which is LWJGL and one of which is JGLFW.  LWJGL failed on
> both 32- and 64-bit Linux (after I figured out how to get it to load its
> dependencies from the right folder) with an UnsatisfiedLinkError in org.lwjgl.DefaultSysImplementation.getPointerSize()I
> , which (in the LWJGL source) is a native method with no body in the .java
> file.
>
> JGLFW failed on 64-bit Linux (haven't built it on 32-bit) with a different
> error, still in a native method:
>
> java.lang.UnsatisfiedLinkError: com/badlogic/jglfw/Glfw.glfwInitJni()Z
>
>           at cli.IKVM.Runtime.JNI$Frame.GetFuncPtr(Unknown Source)
>
> I have had issues setting LD_LIBRARY_PATH on this machine (a VM running
> Fedora 20, 64-bit; the VM is run by VirtualBox on Windows 7 64-bit), and I
> believe java.library.path is unset, but the libraries are all in the
> current folder (same as the exe).  My application is open source and the
> latest code is at https://github.com/tommyettinger/CommandersUnite/ and
> the only IKVM-specific code is in
> https://github.com/tommyettinger/CommandersUnite/blob/master/CU/CU/GameGDX.cs#L478
> .  I built gdx-jglfw.dll using the command:
>
> "%IKVM_HOME%/ikvmc.exe" -target:library -out:gdx-jglfw.dll
> -sharedclassloader gdx.jar gdx-natives.jar gdx-backend-jglfw.jar
> gdx-backend-jglfw-natives.jar
>
> where %IKVM_HOME% evaluated to the bin directory of the current
> trunk/head/master (latest) of the IKVM CVS on SourceForge (it actually may
> have been the latest nightly from the IKVM weblog, it is a version 8 or
> higher nightly).  That command was run on the libgdx 1.2.0 binary release.
>  I then extracted the dll and so files from the natives jars, copied them
> into the project, and set them to copy into the release directory.
>
> So my question is, is there a bug in my code, or in IKVM, here that can be
> fixed?  Does JNI work at all under Mono/Linux?
>
>
>
> --
>
> Thomas (Tommy) Ettinger
>



-- 

Thomas (Tommy) Ettinger

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds

_______________________________________________
Ikvm-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ikvm-developers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.