Results 1 to 2 of 2
  1. #1
    gaurav115 is offline Member
    Join Date
    Apr 2012
    Posts
    1
    Rep Power
    0

    Default Android with JNI

    hi,
    I have tried writing a jni call for the simple c code. when i try to install this on the phone running 2.3.3 it doesnt install, sometimes even if it installs then it is being force closed.Please help me with this. the code details are as follows:

    The java code of which i generate the header file.

    package com.hosa;

    public class edgejava{
    static{
    System.loadLibrary("edgejava");
    }
    public native int main();
    }

    the generated header file is as below

    /* DO NOT EDIT THIS FILE - it is machine generated */
    #include <jni.h>
    /* Header for class com_hosa_edgejava */

    #ifndef _Included_com_hosa_edgejava
    #define _Included_com_hosa_edgejava
    #ifdef __cplusplus
    extern "C" {
    #endif
    /*
    * Class: com_hosa_edgejava
    * Method: main
    * Signature: ()I
    */
    JNIEXPORT jint JNICALL Java_com_hosa_edgejava_main
    (JNIEnv *, jobject);

    #ifdef __cplusplus
    }
    #endif
    #endif


    the implementation of native function is as below

    #include "com_hosa_edgejava.h"
    #include <jni.h>
    #include <cv.h>
    #include <highgui.h>

    using namespace cv;

    JNIEXPORT jint JNICALL Java_com_pes_edgejava_main(JNIEnv *, jobject){
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened()) // check if we succeeded
    return -1;

    Mat edges;
    namedWindow("edges",CV_WINDOW_AUTOSIZE);
    for(;;)
    {
    Mat frame;
    cap >> frame; // get a new frame from camera
    cvtColor(frame, edges, CV_BGR2GRAY);
    GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
    Canny(edges, edges, 0, 30, 3);
    imshow("edges", edges);
    if(waitKey(30) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
    }

    the android.mk file

    LOCAL_PATH := $(call my-dir)

    include $(CLEAR_VARS)

    include /home/srijith/android-opencv/OpenCV-2.3.1/share/OpenCV/OpenCV.mk

    LOCAL_MODULE := edgejava
    LOCAL_SRC_FILES := edgecpp.cpp
    LOCAL_LDLIBS += -llog -ldl


    include $(BUILD_SHARED_LIBRARY)


    the application.mk


    APP_MODULES := edgejava
    APP_STL := gnustl_static
    APP_CPPFLAGS := -frtti -fexceptions


    the activity file is as follows

    package com.hosa;

    import android.app.Activity;
    import android.os.Bundle;

    public class Andedge2Activity extends Activity {
    edgejava nativelib;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    nativelib= new edgejava();
    int i=nativelib.main();
    System.out.println("value returned to andedgeactivity "+i);
    }
    }

    All necessary changes to the manifest has been done like mention of use of camera and permissions has been set.

  2. #2
    DarrylBurke's Avatar
    DarrylBurke is offline Member
    Join Date
    Sep 2008
    Location
    Madgaon, Goa, India
    Posts
    11,188
    Rep Power
    19

    Default Re: Android with JNI

    When you have a question, start your own thread. Don't tag on to a thread with a totally unrelated question.

    Split from Android Help

    db
    If you're forever cleaning cobwebs, it's time to get rid of the spiders.

Similar Threads

  1. Replies: 1
    Last Post: 12-24-2011, 04:41 AM
  2. Android Help
    By fresh83 in forum Android
    Replies: 1
    Last Post: 05-19-2011, 08:44 PM
  3. android sdk
    By aizen92 in forum Android
    Replies: 2
    Last Post: 02-21-2011, 10:28 PM
  4. Android USB
    By Blackberrylerner in forum Android
    Replies: 0
    Last Post: 01-15-2011, 05:05 AM
  5. Android
    By sspkiet in forum Android
    Replies: 1
    Last Post: 09-03-2010, 01:14 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •