Old Native Bullet Library for Android when building from sources

I’m not sure if this is an issue or not, but when I build from sources, I’m getting an old native bullet .so library. When I look in jME3 lib bullet the jME3-bullet-natives-android.jar contains an .so file from Dec 4, 2011. I think this version is being copied to the dist directory and used in my applicaiton. This is causing a mismatch between the java code and the native jni. I keep getting an unsatisfied link error on the recently added addConstraintC routine that was put in to fix the issue collisions between objects joined by joints. If I build native bullet first and then do a clean and build on jME3, it works fine.



Is the jME3-bullet-natives-android.jar file in jME3 lib bullet supposed to include the latest android bullet libraries or am I supposed to be building bullet myself if I want to use the sources (I need the latest multi-touch fix nehon included that isn’t in stable update yet)?



I think the following line from Build.xml in jME3 is moving this older file into my dist directory:

[java] <copy file=“lib/bullet/jME3-bullet-natives-android.jar” todir="${dist.dir}/opt/native-bullet" overwrite=“true”/>

[/java]

[java]

<target name="-post-jar">

<echo>Moving optional packages</echo>

<mkdir dir="${dist.dir}/opt"/>

<mkdir dir="${dist.dir}/opt/native-bullet"/>

<!–ant antfile=“nbproject/build-bullet-natives.xml” target=“bullet-api-diff”/–>

<!–move file=“bullet-api-diff.html” todir="${dist.dir}/opt/native-bullet" overwrite=“true”/–>

<move file="${dist.dir}/lib/jME3-bullet.jar" todir="${dist.dir}/opt/native-bullet" overwrite=“true”/>

<move file="${dist.dir}/lib/jME3-bullet-natives.jar" todir="${dist.dir}/opt/native-bullet" overwrite=“true”/>

<copy file=“lib/bullet/jME3-bullet-natives-android.jar” todir="${dist.dir}/opt/native-bullet" overwrite=“true”/>



<mkdir dir="${dist.dir}/opt/android"/>

<copy file="${build.dir}/jME3-android.jar" todir="${dist.dir}/opt/android" overwrite=“true”/>

</target>



[/java]

1 Like

Thats “normal”, you’d have to build bullet too like the nightly server does.

So the native bullet libraries included with the stable updates for the platform are not the same libraries that are shipped with the sources? When the last stable update was released, it included libraries files dated May 19, 2012, but the libraries that are in the jME3->lib directory when I download the sources is dated Dec 4, 2011.



I would have thought that when libraries are updated by your build process for platform stable updates, the same updated libraries would get copied to the lib directory of the sources. Is that not a good idea for some reason?

1 Like

automated commits? no thats not a good idea. again, nightly (also the zip) and stable build contain the compiled libraries.

I was under the impression that the libraries provided in nightly were suppose to be the same as the ones provided in the sources. When we use sources, we’ll have to remember to build native bullet first to make sure we are getting the native source changes.



Btw, thanks for making builing native bullet so easy in the platform. Its a great improvement that I appreciate.

as said, the nightly build process builds the binaries for windows, linux and android and updating the svn from there is not a good idea. so yeah, if you want to use the sources you have to build them :wink:

1 Like

OK, thanks for the quick responses as usual.