Closed GoogleCodeExporter closed 9 years ago
It seems that the JVM is not executing the JNI_OnLoad() function.. I am afraid
you will need to recompile the binaries for your platform. Unless it does not
work with properly compiled binaries?
Original comment by samuel.a...@gmail.com
on 12 Jun 2011 at 12:59
I did recompile the binaries for my target platform. The c program is working.
What part should I re-compile? I can try a different JVM soon, the one I'm
using is Sun's so I figure they would conform to the JNI API specification.
Original comment by supert...@gmail.com
on 12 Jun 2011 at 1:14
You need to compile OpenCV (libopencv_*.so) and the JNI binaries for JavaCV
(libjniopencv_*.so)
Original comment by samuel.a...@gmail.com
on 12 Jun 2011 at 1:24
Forgive me for my complete ignorance, but where are the sources for the "JNI
binaries for JavaCV (libjniopencv_*.so)"
There are no .c files in your JavaCV source bundle and the only reference in
OpenCV that I have seen is "OpenCV-2.2.0/android/android-jni"
Original comment by supert...@gmail.com
on 12 Jun 2011 at 1:44
They are generated by JavaCPP at build time. Check inside JavaCV's `build.xml`
file...
Original comment by samuel.a...@gmail.com
on 12 Jun 2011 at 1:49
I have always used Eclipse in the past. I downloaded netbeans and loaded
javacv. It looks to have generated the files and is attempting to compile. Now
I'll need to create the appropriate links and get my cross-compiler/tool chain
ready for the projects.
Thanks for you direction.
Would you be interested in any of the binaries from this ARM 9 build?
Greg.
Original comment by supert...@gmail.com
on 12 Jun 2011 at 4:44
BTW, we do not need NetBeans just to build JavaCV/JavaCPP. Apache Ant alone
works just fine
If the binaries work, sure you can post them here, thanks
Original comment by samuel.a...@gmail.com
on 13 Jun 2011 at 4:36
Ok... I was curious about NetBeans anyway. I got the .cpp files to generate -
I see that it will take command parameters, and you have a set of properties
for each platform. That's very slick.
I generated and compiled the .cpps loaded them on the target system and removed
all the incorrect platform jars (just in case Android confusion comes up) and
am now getting at least a different error :)
Error loading class com/googlecode/javacpp/Pointer.Error getting init method ID
of Pointer class.Exception in thread "OpenCV_videoProcessor"
java.lang.NoSuchMethodError: init
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1732)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at com.googlecode.javacpp.Loader.load(Loader.java:338)
at com.googlecode.javacpp.Loader.load(Loader.java:266)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:118)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.googlecode.javacpp.Loader.load(Loader.java:286)
at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:87)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.googlecode.javacpp.Loader.load(Loader.java:286)
at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:88)
at org.myrobotlab.service.OpenCV$VideoProcess.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
Original comment by supert...@gmail.com
on 13 Jun 2011 at 4:41
I changed the signature of the `init()` method in the June 10th release.. there
must be old stuff still lying around somewhere
Original comment by samuel.a...@gmail.com
on 13 Jun 2011 at 4:44
Ha ! I've been focusing on building with this toolchain, I completely forgot
about your update... Thanks, I'll get your latest release.
Original comment by supert...@gmail.com
on 13 Jun 2011 at 4:53
Hmm... now I remember downloading it today... I checked the README.txt and it
has a
June 10, 2011 entry... I created the directory today too.. so it was not an
overlay. I could start diffing...
Original comment by supert...@gmail.com
on 13 Jun 2011 at 5:01
"there must be old stuff still lying around somewhere" ... I'm guessing/hoping
you were not referring to my system then?
Original comment by supert...@gmail.com
on 13 Jun 2011 at 5:22
Yes, your system. I would not be releasing something that obviously does not
work
Original comment by samuel.a...@gmail.com
on 13 Jun 2011 at 7:54
Success ! Capturing and streaming images off of the Chumby 1 now. I was so
focussed on keeping my build environment clean and up to date, I forgot about
the target system which had the old binaries. Thanks for your guidance. I have
attached the .so objects to the ticket. The hardware is a Chumby 1, I believe
it is an ARM 9 processor, it was compiled with the arm2008q3 toolchain.
Let me know if you want anymore information.
Best Regards,
Greg.
Original comment by supert...@gmail.com
on 13 Jun 2011 at 2:05
Attachments:
Thanks! I am sure other people that have questions will find their way here :)
Original comment by samuel.a...@gmail.com
on 14 Jun 2011 at 12:56
I have just the same problem, could you tell me, where is this "old stuff" in
system exactly?
Original comment by kdo...@gmail.com
on 9 Nov 2011 at 12:35
I think all the binaries are listed @ this link
http://myrobotlab.org/node/97
Attachment Size
rxtxSerial.tar_.gz 143.86 KB
chumby.javacv.tar_.gz 620.71 KB
chumby.opencv.2.2.0.zip 3.69 MB
CMakeCache.txt 31.07 KB
CMakeLists.txt 12.39 KB
Of course all are tied to a version and must be in sync :
OpenCV version javacv version then the jni libraries version
I would recommend testing incrementally - test some small OpenCV program ...
only when that is working move on to the jni & javacv..
Original comment by supert...@gmail.com
on 9 Nov 2011 at 2:45
Original issue reported on code.google.com by
supert...@gmail.com
on 11 Jun 2011 at 11:20