be used on any JVM that supports it and will have the same semantics
and requirements. Android is in no way special to what you're asking.
You should try consulting a JNI specification or reading something
like this:
http://java.sun.com/docs/books/jni/html/jniTOC.html
Doug
On Jan 16, 1:34 am, M J <fakeacc...@googlemail.com> wrote:
> Hey,
>
> hmmm, I do not think so. I just want to know how to call a Java method
> from C without having the jobject. Can I cache it when I previously
> got it as parameter?
>
> On 16 Jan., 09:11, FrankG <frankgru...@googlemail.com> wrote:
>
>
>
>
>
>
>
> > Hello !
>
> > It seems for me, that your question is not really ndk and android
> > related,
> > instead more or less something related to Reflection and the Dynamic
> > Invocation API.
>
> > Good luck ! Frank
>
> > On 13 Jan., 11:11, M J <fakeacc...@googlemail.com> wrote:
>
> > > Hey guys,
>
> > > I nned your help. I am currently developing an application which uses
> > > JNI and native sockets. The problem is that I have to call Java code
> > > if some packages arrive on the native socket connection. Currently I
> > > am using CallVoidMethod to do that. The JNIEnv cannot be cached so I
> > > get it like this:
>
> > > inline JNIEnv *get_env()
> > > {
> > > JNIEnv *env;
> > > jvm->GetEnv((void **)&env, JNI_VERSION_1_4);
> > > return env;
>
> > > }
>
> > > The jmethodID I is cached and initialized on startup. My only problem
> > > now is, how can I get the jobject? Currently I am making a global
> > > reference on the parameter jobject thiz, which is passed to my init
> > > function.
>
> > > Is this okay? I am asking because I am having some trouble with that,
> > > eg. the reference to the local and the global obj are exactly the
> > > same. And when I a call DeleteGlobalRef on the global reference there
> > > is a warning in the log cat output that this reference does not exist
> > > and the app crashes.
>
> > > I also tried using the local reference but then the CallVoidMethod
> > > crashes and the output says this reference does not exist, so I think
> > > I am on the right way.
>
> > > Thanks in advance!
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
No comments:
Post a Comment