[sword-devel] Bishop source / JNI instructions
Wes Widner
wes at werxltd.com
Tue Apr 20 17:25:42 MST 2010
Oops.
After pulling the latest from svn I can build the module just fine.
Now to figure out the best way to download and use modules from within my
android app...
-Wes
On Tue, Apr 20, 2010 at 5:47 AM, Troy A. Griffitts <scribe at crosswire.org>wrote:
> Dear Wes,
>
> These are all problems fixed in recent commits to SVN. Had you pulled
> sword from SVN before I answered with instructions? If so, you should
> pull again. I committed my latest code just before sending my first
> email with instructions to you.
>
> Wes Widner wrote:
> > Troy,
> >
> > I'm building on a 64bit Ubuntu 9.10 laptop.
> >
> > Adding in the extra include directory I got it to compile. Actually, I
> > entered the full path instead of a relative path. I'm guessing getting
> > the paths problem solved in a programmatic fashion would be a great
> > first step in cleaning things up.
> >
> > At any rate, now the linker fails with the following:
> > SharedLibrary : libsword.so
> >
> /usr/src/android-ndk-r3-crystax/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld:
> > cannot find -lstlport
> > collect2: ld returned 1 exit status
> >
> > I'm guessing this is because I don't have STL support properly built
> > yet. Do you know how I should go about building it for
> > android-ndk-r3-crystax?
> >
> > Thanks,
> > -Wes
> >
> >
> > On Sun, Apr 18, 2010 at 11:36 PM, Troy A. Griffitts
> > <scribe at crosswire.org <mailto:scribe at crosswire.org>> wrote:
> >
> > Hey Wes,
> >
> > Glad you can use the prebuilt library.
> >
> > Can you tell me if you have this line for both sword and swordcore in
> > your sword/bindings/java-jni/jni/Android.mk
> >
> > LOCAL_C_INCLUDES := ../src/sword/include
> > ../src/sword/include/internal/regex
> >
> > Your directories are slightly off from what mine are. Notice I have
> my
> > ndk in my home directory, not my src directory.
> >
> > May I ask what platform you are building on?
> >
> > Troy
> >
> >
> > Wes Widner wrote:
> > > Thanks Troy,
> > >
> > > I'm now able to use your prebuilt libsword.so library in my android
> > > application. This will at least let me continue building the
> > Android app
> > > I had in mind initially.
> > >
> > > However I would still like to learn how to at least build the
> > library on
> > > my own, I'd like to help as much as I can as well, but I figure
> > getting
> > > it to build is a good first step.
> > >
> > > I moved my code to the following directories:
> > > /usr/src/bishop
> > > /usr/src/sword
> > > /usr/src/android-ndk-r3-crystax
> > >
> > > Now it compiles a bit farther, but it still throws an error:
> > > Compile thumb : swordcore <=
> > > apps/bishop/../../../bishop/jni/../../../src/utilfuns/regex.c
> > >
> apps/bishop/../../../bishop/jni/../../../src/utilfuns/regex.c:177:19:
> > > error: regex.h: No such file or directory
> > > apps/bishop/../../../bishop/jni/../../../src/utilfuns/regex.c:942:
> > > error: expected '=', ',', ';', 'asm' or '__attribute__' before
> > > 're_syntax_options'
> > >
> > > Other errors follow, but I assume they are cascading from these.
> > >
> > > -Wes
> > >
> > >
> > > On Sun, Apr 18, 2010 at 8:01 PM, Troy A. Griffitts
> > <scribe at crosswire.org <mailto:scribe at crosswire.org>
> > > <mailto:scribe at crosswire.org <mailto:scribe at crosswire.org>>>
> wrote:
> > >
> > > Yes, unless you want to rebuild libsword.so, you don't need
> > the ndk.
> > > Simply place libsword.so at:
> > >
> > > bishop/libs/armeabi/libsword.so
> > >
> > >
> > > But again, the most useful thing at this stage would be to help
> me
> > > stabilize libsword.so
> > >
> > > But I understand if you'd rather work on your frontend. I'll
> > keep you
> > > posted on my progress with libsword.so for android.
> > >
> > > The issues you've posted below seem to have something to do
> > with your
> > > paths. Maybe you could try putting things relative to the
> > same place I
> > > have my stuff. It is quite possible I have a path setup
> > somewhere which
> > > depends on my directory structure.
> > >
> > > /home/scribe/src/sword/
> > > /home/scribe/src/bishop/
> > > /home/scribe/android-ndk-r3-crystax/
> > > /home/scribe/android-ndk-r3-crystax/apps/bishop/Application.mk
> > >
> > > with:
> > >
> > > APP_PROJECT_PATH := $(call my-dir)/../../../src/bishop
> > > APP_MODULES := sword swordcore
> > > APP_PLATFORM := android-3
> > >
> > >
> > > I'm sure you could change /home/scribe to your $HOME, but
> > maybe try to
> > > put everything else relative to your home like mine and see if
> > it works.
> > > Once we get your setup working maybe we can determine which
> > component
> > > is counting on another being at a certain location, and if we
> > can easily
> > > break that requirement.
> > >
> > > Troy
> > >
> > >
> > >
> > > Wes Widner wrote:
> > > > Troy,
> > > >
> > > > Thank you VERY much for pointing me in the right direction.
> > > >
> > > > I've gotten crystax and have created a test project of my
> > own. But
> > > when
> > > > I attempt to run 'make APP=bishop' (I named my test app
> > bishop as
> > > well)
> > > > I get the following:
> > > > Android NDK: Building for application 'bishop'
> > > > Compile++ thumb: sword <= /usr/src/bishop/jni/swordstub.cpp
> > > > /usr/src/bishop/jni/swordstub.cpp:25:21: warning: utilstr.h:
> > No such
> > > > file or directory
> > > > /usr/src/bishop/jni/swordstub.cpp:26:23: warning:
> > swversion.h: No such
> > > > file or directory
> > > > /usr/src/bishop/jni/swordstub.cpp:27:19: warning: swmgr.h:
> > No such
> > > file
> > > > or directory
> > > > /usr/src/bishop/jni/swordstub.cpp:28:19: warning: swlog.h:
> > No such
> > > file
> > > > or directory
> > > > /usr/src/bishop/jni/swordstub.cpp:29:21: warning: filemgr.h:
> > No such
> > > > file or directory
> > > > /usr/src/bishop/jni/swordstub.cpp:30:22: warning:
> > swmodule.h: No such
> > > > file or directory
> > > > /usr/src/bishop/jni/swordstub.cpp:31:22: warning:
> > versekey.h: No such
> > > > file or directory
> > > > /usr/src/bishop/jni/swordstub.cpp:32:23: warning:
> > localemgr.h: No such
> > > > file or directory
> > > > /usr/src/bishop/jni/swordstub.cpp:33:24: warning:
> > treekeyidx.h: No
> > > such
> > > > file or directory
> > > > /usr/src/bishop/jni/swordstub.cpp:34:24: warning:
> > installmgr.h: No
> > > such
> > > > file or directory
> > > > In file included from /usr/src/bishop/jni/swordstub.cpp:36:
> > > > /usr/src/bishop/jni/webmgr.hpp:23:22: warning: swfilter.h:
> > No such
> > > file
> > > > or directory
> > > > /usr/src/bishop/jni/webmgr.hpp:24:27: warning:
> > markupfiltmgr.h: No
> > > such
> > > > file or directory
> > > > /usr/src/bishop/jni/webmgr.hpp:25:24: warning: osiswordjs.h:
> > No such
> > > > file or directory
> > > > /usr/src/bishop/jni/webmgr.hpp:26:24: warning: thmlwordjs.h:
> > No such
> > > > file or directory
> > > > /usr/src/bishop/jni/webmgr.hpp:27:23: warning: gbfwordjs.h:
> No
> > > such file
> > > > or directory
> > > > In file included from /usr/src/bishop/jni/swordstub.cpp:22:
> > > > build/platforms/android-3/arch-arm/usr/include/jni.h:489:
> > note: the
> > > > mangling of 'va_list' has changed in GCC 4.4
> > > > In file included from /usr/src/bishop/jni/swordstub.cpp:36:
> > > > /usr/src/bishop/jni/webmgr.hpp:29: error: 'sword' is not a
> > > namespace-name
> > > > /usr/src/bishop/jni/webmgr.hpp:29: error: expected
> > namespace-name
> > > before
> > > > ';' token
> > > > /usr/src/bishop/jni/webmgr.hpp:31: error: expected class-name
> > > before '{'
> > > > token
> > > > /usr/src/bishop/jni/webmgr.hpp:32: error: ISO C++ forbids
> > > declaration of
> > > > 'OSISWordJS' with no type
> > > > /usr/src/bishop/jni/webmgr.hpp:32: error: expected ';'
> > before '*'
> > > token
> > > > /usr/src/bishop/jni/webmgr.hpp:33: error: ISO C++ forbids
> > > declaration of
> > > > 'ThMLWordJS' with no type
> > > > /usr/src/bishop/jni/webmgr.hpp:33: error: expected ';'
> > before '*'
> > > token
> > > > /usr/src/bishop/jni/webmgr.hpp:34: error: ISO C++ forbids
> > > declaration of
> > > > 'GBFWordJS' with no type
> > > > /usr/src/bishop/jni/webmgr.hpp:34: error: expected ';'
> > before '*'
> > > token
> > > > /usr/src/bishop/jni/webmgr.hpp:35: error: ISO C++ forbids
> > > declaration of
> > > > 'SWModule' with no type
> > > > /usr/src/bishop/jni/webmgr.hpp:35: error: expected ';'
> > before '*'
> > > token
> > > > /usr/src/bishop/jni/webmgr.hpp:36: error: ISO C++ forbids
> > > declaration of
> > > > 'SWModule' with no type
> > > > /usr/src/bishop/jni/webmgr.hpp:36: error: expected ';'
> > before '*'
> > > token
> > > > /usr/src/bishop/jni/webmgr.hpp:37: error: ISO C++ forbids
> > > declaration of
> > > > 'SWModule' with no type
> > > > /usr/src/bishop/jni/webmgr.hpp:37: error: expected ';'
> > before '*'
> > > token
> > > > /usr/src/bishop/jni/webmgr.hpp:38: error: ISO C++ forbids
> > > declaration of
> > > > 'SWModule' with no type
> > > > /usr/src/bishop/jni/webmgr.hpp:38: error: expected ';'
> > before '*'
> > > token
> > > > /usr/src/bishop/jni/webmgr.hpp:68: error: 'SWModule' has not
> > been
> > > declared
> > > > /usr/src/bishop/jni/webmgr.hpp:68: error: 'ConfigEntMap' has
> > not been
> > > > declared
> > > > /usr/src/bishop/jni/webmgr.hpp:68: error: 'ConfigEntMap' has
> > not been
> > > > declared
> > > > /usr/src/bishop/jni/webmgr.hpp:68: error: expected ',' or
> > '...' before
> > > > 'start'
> > > > /usr/src/bishop/jni/webmgr.hpp: In constructor
> > 'WebMgr::WebMgr(const
> > > > char*)':
> > > > /usr/src/bishop/jni/webmgr.hpp:42: error: class 'WebMgr'
> > does not have
> > > > any field named 'SWMgr'
> > > > /usr/src/bishop/jni/webmgr.hpp:42: error: expected
> > type-specifier
> > > before
> > > > 'MarkupFilterMgr'
> > > > /usr/src/bishop/jni/webmgr.hpp:42: error: expected ')' before
> > > > 'MarkupFilterMgr'
> > > > /usr/src/bishop/jni/webmgr.hpp:43: error: 'defaultGreekLex'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:44: error: 'defaultHebLex'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:45: error:
> > 'defaultGreekParse' was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:46: error: 'defaultHebParse'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:48: error: 'osisWordJS' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:48: error: expected
> > type-specifier
> > > before
> > > > 'OSISWordJS'
> > > > /usr/src/bishop/jni/webmgr.hpp:48: error: expected ';' before
> > > 'OSISWordJS'
> > > > /usr/src/bishop/jni/webmgr.hpp:49: error: 'thmlWordJS' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:49: error: expected
> > type-specifier
> > > before
> > > > 'ThMLWordJS'
> > > > /usr/src/bishop/jni/webmgr.hpp:49: error: expected ';' before
> > > 'ThMLWordJS'
> > > > /usr/src/bishop/jni/webmgr.hpp:50: error: 'gbfWordJS' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:50: error: expected
> > type-specifier
> > > before
> > > > 'GBFWordJS'
> > > > /usr/src/bishop/jni/webmgr.hpp:50: error: expected ';' before
> > > 'GBFWordJS'
> > > > /usr/src/bishop/jni/webmgr.hpp:51: error: 'Load' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:58: error: 'setGlobalOption'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp: In destructor
> > 'WebMgr::~WebMgr()':
> > > > /usr/src/bishop/jni/webmgr.hpp:62: error: 'osisWordJS' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:63: error: 'thmlWordJS' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:64: error: 'gbfWordJS' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp: In member function 'void
> > > > WebMgr::AddGlobalOptions(int*, int&, int)':
> > > > /usr/src/bishop/jni/webmgr.hpp:71: error: request for member
> > > 'Markup' in
> > > > '* module', which is of non-class type 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:71: error: 'FMT_THML' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:72: error: request for member
> > > > 'AddOptionFilter' in '* module', which is of non-class type
> > 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:72: error: 'thmlWordJS' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:75: error: request for member
> > > 'Markup' in
> > > > '* module', which is of non-class type 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:75: error: 'FMT_GBF' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:76: error: request for member
> > > > 'AddOptionFilter' in '* module', which is of non-class type
> > 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:76: error: 'gbfWordJS' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:80: error: 'SWMgr' has not
> been
> > > declared
> > > > /usr/src/bishop/jni/webmgr.hpp:80: error: 'start' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:80: error: 'end' was not
> declared
> > > in this
> > > > scope
> > > > /usr/src/bishop/jni/webmgr.hpp:83: error: request for member
> > > 'getConfig'
> > > > in '* module', which is of non-class type 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:84: error: 'defaultGreekLex'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:86: error: request for member
> > > 'getConfig'
> > > > in '* module', which is of non-class type 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:87: error: 'defaultHebLex'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:89: error: request for member
> > > 'getConfig'
> > > > in '* module', which is of non-class type 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:90: error:
> > 'defaultGreekParse' was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:92: error: request for member
> > > 'getConfig'
> > > > in '* module', which is of non-class type 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:93: error: 'defaultHebParse'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:95: error: request for member
> > > 'getConfig'
> > > > in '* module', which is of non-class type 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:96: error: 'OptionFilterMap'
> has
> > > not been
> > > > declared
> > > > /usr/src/bishop/jni/webmgr.hpp:96: error: expected ';'
> > before 'it'
> > > > /usr/src/bishop/jni/webmgr.hpp:97: error: 'it' was not
> > declared in
> > > this
> > > > scope
> > > > /usr/src/bishop/jni/webmgr.hpp:97: error: 'optionFilters'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:98: error: request for member
> > > > 'AddOptionFilter' in '* module', which is of non-class type
> > 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:102: error: request for
> > member 'Markup'
> > > > in '* module', which is of non-class type 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:102: error: 'FMT_OSIS' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:103: error: request for member
> > > > 'AddOptionFilter' in '* module', which is of non-class type
> > 'int'
> > > > /usr/src/bishop/jni/webmgr.hpp:103: error: 'osisWordJS' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp: In member function 'void
> > > > WebMgr::setJavascript(bool)':
> > > > /usr/src/bishop/jni/webmgr.hpp:109: error: 'osisWordJS' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:110: error: 'thmlWordJS' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/webmgr.hpp:111: error: 'gbfWordJS' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: At global scope:
> > > > /usr/src/bishop/jni/swordstub.cpp:46: error: 'sword' is not a
> > > namespace-name
> > > > /usr/src/bishop/jni/swordstub.cpp:46: error: expected
> > namespace-name
> > > > before ';' token
> > > > /usr/src/bishop/jni/swordstub.cpp:50: error: expected
> > constructor,
> > > > destructor, or type conversion before '*' token
> > > > /usr/src/bishop/jni/swordstub.cpp:52: error: expected
> class-name
> > > before
> > > > '{' token
> > > > /usr/src/bishop/jni/swordstub.cpp: In constructor
> > > > 'AndroidLogger::AndroidLogger()':
> > > > /usr/src/bishop/jni/swordstub.cpp:57: error: 'SWLog' has not
> > been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:58: error: 'SWLog' has not
> > been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:59: error: 'SWLog' has not
> > been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:60: error: 'SWLog' has not
> > been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:61: error: 'SWLog' has not
> > been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp: In member function
> > 'virtual void
> > > > AndroidLogger::logMessage(const char*, int) const':
> > > > /usr/src/bishop/jni/swordstub.cpp:64: error: 'SWBuf' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:64: error: expected ';'
> > before 'msg'
> > > > /usr/src/bishop/jni/swordstub.cpp:65: error: 'msg' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:66: error: 'msg' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function 'void init()':
> > > > /usr/src/bishop/jni/swordstub.cpp:73: error: 'SWLog' has not
> > been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:74: error: 'SWLog' has not
> > been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:74: error: 'SWLog' has not
> > been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:75: error: 'SWBuf' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:75: error: expected ';'
> before
> > > 'baseDir'
> > > > /usr/src/bishop/jni/swordstub.cpp:76: error: expected ';'
> before
> > > 'confPath'
> > > > /usr/src/bishop/jni/swordstub.cpp:78: error: 'FileMgr' has
> not
> > > been declared
> > > > /usr/src/bishop/jni/swordstub.cpp:78: error: 'confPath' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:79: error: 'FileMgr' has
> not
> > > been declared
> > > > /usr/src/bishop/jni/swordstub.cpp:82: error: 'SWConfig' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:82: error: expected ';'
> before
> > > 'config'
> > > > /usr/src/bishop/jni/swordstub.cpp:83: error: 'config' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function 'void
> > initInstall()':
> > > > /usr/src/bishop/jni/swordstub.cpp:93: error: 'installMgr'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:94: error: 'SWBuf' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:94: error: expected ';'
> before
> > > 'baseDir'
> > > > /usr/src/bishop/jni/swordstub.cpp:95: error: expected ';'
> before
> > > 'confPath'
> > > > /usr/src/bishop/jni/swordstub.cpp:97: error: 'FileMgr' has
> not
> > > been declared
> > > > /usr/src/bishop/jni/swordstub.cpp:97: error: 'confPath' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:98: error: 'FileMgr' has
> not
> > > been declared
> > > > /usr/src/bishop/jni/swordstub.cpp:101: error: 'SWConfig' was
> not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:101: error: expected ';'
> > before
> > > 'config'
> > > > /usr/src/bishop/jni/swordstub.cpp:102: error: 'config' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:105: error: expected
> > type-specifier
> > > > before 'InstallMgr'
> > > > /usr/src/bishop/jni/swordstub.cpp:105: error: expected ';'
> > before
> > > > 'InstallMgr'
> > > > /usr/src/bishop/jni/swordstub.cpp: In function '_jstring*
> > > > Java_org_crosswire_android_sword_SWMgr_version(JNIEnv*,
> > _jobject*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:116: error: 'SWVersion'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:116: error: expected ';'
> > before 'v'
> > > > /usr/src/bishop/jni/swordstub.cpp:117: error: 'v' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function '_jstring*
> > > > Java_org_crosswire_android_sword_SWMgr_getPrefixPath(JNIEnv*,
> > > _jobject*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:139: error: 'class WebMgr'
> > has no
> > > > member named 'prefixPath'
> > > > /usr/src/bishop/jni/swordstub.cpp: In function '_jstring*
> > > > Java_org_crosswire_android_sword_SWMgr_getConfigPath(JNIEnv*,
> > > _jobject*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:147: error: 'class WebMgr'
> > has no
> > > > member named 'configPath'
> > > > /usr/src/bishop/jni/swordstub.cpp: In function
> '_jobjectArray*
> > > >
> Java_org_crosswire_android_sword_SWMgr_getModInfoList(JNIEnv*,
> > > _jobject*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:157: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:157: error: expected ';'
> > before 'it'
> > > > /usr/src/bishop/jni/swordstub.cpp:157: error: 'it' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:157: error: 'class WebMgr'
> > has no
> > > > member named 'Modules'
> > > > /usr/src/bishop/jni/swordstub.cpp:162: error: 'SWLog' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:175: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:175: error: expected ';'
> > before 'it'
> > > > /usr/src/bishop/jni/swordstub.cpp:175: error: 'it' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:175: error: 'class WebMgr'
> > has no
> > > > member named 'Modules'
> > > > /usr/src/bishop/jni/swordstub.cpp:176: error: 'SWModule' was
> not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:176: error: 'module' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:179: error: 'SWBuf' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:179: error: expected ';'
> > before
> > > 'type'
> > > > /usr/src/bishop/jni/swordstub.cpp:180: error: expected ';'
> > before
> > > 'cat'
> > > > /usr/src/bishop/jni/swordstub.cpp:181: error: expected ';'
> > before
> > > 'version'
> > > > /usr/src/bishop/jni/swordstub.cpp:182: error: 'cat' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:182: error: 'type' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:187: error:
> 'assureValidUTF8'
> > > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:189: error: 'type' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:191: error: 'version' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function '_jobject*
> > > >
> Java_org_crosswire_android_sword_SWMgr_getModuleByName(JNIEnv*,
> > > > _jobject*, _jstring*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:216: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:216: error: 'module' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:216: error: 'class WebMgr'
> > has no
> > > > member named 'getModule'
> > > > /usr/src/bishop/jni/swordstub.cpp:220: error: 'SWBuf' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:220: error: expected ';'
> > before
> > > 'type'
> > > > /usr/src/bishop/jni/swordstub.cpp:221: error: expected ';'
> > before
> > > 'cat'
> > > > /usr/src/bishop/jni/swordstub.cpp:222: error: 'cat' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:222: error: 'type' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:226: error:
> 'assureValidUTF8'
> > > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:228: error: 'type' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function 'void
> > > >
> Java_org_crosswire_android_sword_SWMgr_setGlobalOption(JNIEnv*,
> > > > _jobject*, _jstring*, _jstring*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:247: error: 'class WebMgr'
> > has no
> > > > member named 'setGlobalOption'
> > > > /usr/src/bishop/jni/swordstub.cpp: In function '_jstring*
> > > >
> Java_org_crosswire_android_sword_SWMgr_getGlobalOption(JNIEnv*,
> > > > _jobject*, _jstring*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:266: error: 'SWBuf' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:266: error: expected ';'
> > before
> > > 'value'
> > > > /usr/src/bishop/jni/swordstub.cpp:270: error: 'value' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:270: error:
> 'assureValidUTF8'
> > > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function '_jstring*
> > > >
> > Java_org_crosswire_android_sword_SWMgr_getGlobalOptionTip(JNIEnv*,
> > > > _jobject*, _jstring*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:286: error: 'SWBuf' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:286: error: expected ';'
> > before
> > > 'value'
> > > > /usr/src/bishop/jni/swordstub.cpp:290: error: 'value' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:290: error:
> 'assureValidUTF8'
> > > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function '_jstring*
> > > > Java_org_crosswire_android_sword_SWMgr_filterText(JNIEnv*,
> > _jobject*,
> > > > _jstring*, _jstring*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:307: error: 'SWBuf' was
> > not declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:307: error: expected ';'
> > before
> > > 'buf'
> > > > /usr/src/bishop/jni/swordstub.cpp:309: error: 'class WebMgr'
> > has no
> > > > member named 'setGlobalOption'
> > > > /usr/src/bishop/jni/swordstub.cpp:310: error: 'class WebMgr'
> > has no
> > > > member named 'filterText'
> > > > /usr/src/bishop/jni/swordstub.cpp:310: error: 'buf' was not
> > > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:315: error:
> 'assureValidUTF8'
> > > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function
> '_jobjectArray*
> > > >
> Java_org_crosswire_android_sword_SWMgr_getGlobalOptions(JNIEnv*,
> > > > _jobject*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:329: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:329: error: expected ';'
> > before
> > > 'options'
> > > > /usr/src/bishop/jni/swordstub.cpp:331: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:331: error: expected ';'
> > before 'it'
> > > > /usr/src/bishop/jni/swordstub.cpp:331: error: 'it' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:331: error: 'options' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:339: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:339: error: expected ';'
> > before 'it'
> > > > /usr/src/bishop/jni/swordstub.cpp:339: error: 'it' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:339: error: 'options' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:340: error:
> 'assureValidUTF8'
> > > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function
> '_jobjectArray*
> > > >
> > Java_org_crosswire_android_sword_SWMgr_getGlobalOptionValues(JNIEnv*,
> > > > _jobject*, _jstring*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:359: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:359: error: expected ';'
> > before
> > > 'options'
> > > > /usr/src/bishop/jni/swordstub.cpp:364: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:364: error: expected ';'
> > before 'it'
> > > > /usr/src/bishop/jni/swordstub.cpp:364: error: 'it' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:364: error: 'options' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:371: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:371: error: expected ';'
> > before 'it'
> > > > /usr/src/bishop/jni/swordstub.cpp:371: error: 'it' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:371: error: 'options' was
> not
> > > declared
> > > > in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:372: error:
> 'assureValidUTF8'
> > > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function 'void
> > > > Java_org_crosswire_android_sword_SWMgr_setCipherKey(JNIEnv*,
> > > _jobject*,
> > > > _jstring*, _jstring*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:392: error: 'class WebMgr'
> > has no
> > > > member named 'setCipherKey'
> > > > /usr/src/bishop/jni/swordstub.cpp: In function
> '_jobjectArray*
> > > >
> > Java_org_crosswire_android_sword_SWMgr_getAvailableLocales(JNIEnv*,
> > > > _jobject*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:423: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:423: error: expected ';'
> > before
> > > > 'localeNames'
> > > > /usr/src/bishop/jni/swordstub.cpp:425: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:425: error: expected ';'
> > before 'it'
> > > > /usr/src/bishop/jni/swordstub.cpp:425: error: 'it' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:425: error: 'localeNames'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:433: error: 'sword' has
> > not been
> > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp:433: error: expected ';'
> > before 'it'
> > > > /usr/src/bishop/jni/swordstub.cpp:433: error: 'it' was not
> > declared in
> > > > this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:433: error: 'localeNames'
> > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp:434: error:
> 'assureValidUTF8'
> > > was not
> > > > declared in this scope
> > > > /usr/src/bishop/jni/swordstub.cpp: In function 'void
> > > >
> Java_org_crosswire_android_sword_SWMgr_setDefaultLocale(JNIEnv*,
> > > > _jobject*, _jstring*)':
> > > > /usr/src/bishop/jni/swordstub.cpp:452: error: 'LocaleMgr'
> > has not been
> > > > declared
> > > > /usr/src/bishop/jni/swordstub.cpp: At global scope:
> > > > /usr/src/bishop/jni/swordstub.cpp:462: error: expected
> > constructor,
> > > > destructor, or type conversion before '*' token
> > > > make: *** [out/apps/bishop/armeabi/objs/sword/swordstub.o]
> > Error 1
> > > >
> > > > /usr/src/bishop/jni is symlinked to
> > sword/bindings/java-jni/jni and my
> > > > Application.mk file in android-ndk-r3-crystax/apps/bishop
> > contains:
> > > > APP_PROJECT_PATH := /usr/src/bishop
> > > > APP_MODULES := sword swordcore
> > > > APP_PLATFORM := android-3
> > > >
> > > > Do you know what I'm doing wrong?
> > > >
> > > > Also, I have gotten the libsword.so file from the bishop.apk
> > file you
> > > > posted earlier. Is there any way I could bind to it and use
> it?
> > > >
> > > > -Wes
> > > >
> > > >
> > > > On Sat, Apr 17, 2010 at 2:55 AM, Troy A. Griffitts
> > > <scribe at crosswire.org <mailto:scribe at crosswire.org>
> > <mailto:scribe at crosswire.org <mailto:scribe at crosswire.org>>
> > > > <mailto:scribe at crosswire.org <mailto:scribe at crosswire.org>
> > <mailto:scribe at crosswire.org <mailto:scribe at crosswire.org>>>> wrote:
> > > >
> > > > Dear Wes,
> > > >
> > > > The files I threw together are still very much a
> prototype /
> > > proof of
> > > > concept. But with that warning, everything you need to
> > build
> > > libsword
> > > > for android is included in the svn repository for the
> SWORD
> > > engine. You
> > > > can get the source here:
> > > >
> > > > svn co https://crosswire.org/svn/sword/trunk sword/
> > > >
> > > > The Bishop code is merely a bunch of calls to try out
> > and help
> > > develop
> > > > the libsword bindings and really aren't worth checking in
> > > anywhere, but
> > > > if you'd like me to post them for an example, I can
> > certainly
> > > do that.
> > > >
> > > > Please again realize these android jni wrappers are
> > fragile and
> > > > incomplete. Please feel free to improve them, but please
> > > don't count on
> > > > them working dependably.
> > > >
> > > > Build instructions.
> > > >
> > > > You'll need an NDK with STL support. I have been trying
> > > crystax release
> > > > lately. You can find it on the web.
> > > >
> > > > After that, you'll need a basic Application.mk file to
> place
> > > in your
> > > > apps folder. Mine for bishop is here:
> > > >
> > > > ~/android-ndk-r3-crystax/apps/bishop/Application.mk
> > > >
> > > > and contains:
> > > >
> > > > APP_PROJECT_PATH := $(call my-dir)/../../../src/bishop
> > > > APP_MODULES := sword swordcore
> > > > APP_PLATFORM := android-3
> > > >
> > > > and I have a symlink:
> > > >
> > > > ~/src/bishop/jni -> ~/src/sword/bindings/java-jni/jni/
> > > >
> > > > ~/src/sword is simply a checkout of the current sword svn
> > > repository.
> > > >
> > > > Hope this helps get you started. Let me know your
> progress!
> > > >
> > > > Troy
> > > >
> > > >
> > > >
> > > >
> > > > Wes Widner wrote:
> > > > > Hey everyone,
> > > > >
> > > > > I'm new to this list so forgive me if it's answered
> > > elsewhere and I've
> > > > > simply overlooked it. Where is the source code for the
> > > android project
> > > > > that uses the sword library via jni?
> > > > >
> > > > > Also, does anyone know how I should go about building
> the
> > > jni library
> > > > > for sword? I can mange to build the .java interface
> files,
> > > but I am
> > > > > having trouble figuring out where to build the system
> > > library (the .so
> > > > > file).
> > > > >
> > > > > Any help is much appreciated!
> > > > >
> > > > > Blessings,
> > > > > -Wes
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
> ------------------------------------------------------------------------
> > > > >
> > > > > _______________________________________________
> > > > > sword-devel mailing list: sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>
> > > <mailto:sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>>
> > > > <mailto:sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>
> > > <mailto:sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>>>
> > > > > http://www.crosswire.org/mailman/listinfo/sword-devel
> > > > > Instructions to unsubscribe/change your settings at
> > above page
> > > >
> > > >
> > > > _______________________________________________
> > > > sword-devel mailing list: sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>
> > > <mailto:sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>>
> > > > <mailto:sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>
> > > <mailto:sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>>>
> > > > http://www.crosswire.org/mailman/listinfo/sword-devel
> > > > Instructions to unsubscribe/change your settings at
> > above page
> > > >
> > > >
> > > >
> > > >
> > >
> >
> ------------------------------------------------------------------------
> > > >
> > > > _______________________________________________
> > > > sword-devel mailing list: sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>
> > > <mailto:sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>>
> > > > http://www.crosswire.org/mailman/listinfo/sword-devel
> > > > Instructions to unsubscribe/change your settings at above
> page
> > >
> > >
> > > _______________________________________________
> > > sword-devel mailing list: sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>
> > > <mailto:sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>>
> > > http://www.crosswire.org/mailman/listinfo/sword-devel
> > > Instructions to unsubscribe/change your settings at above page
> > >
> > >
> > >
> > >
> >
> ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > sword-devel mailing list: sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>
> > > http://www.crosswire.org/mailman/listinfo/sword-devel
> > > Instructions to unsubscribe/change your settings at above page
> >
> >
> > _______________________________________________
> > sword-devel mailing list: sword-devel at crosswire.org
> > <mailto:sword-devel at crosswire.org>
> > http://www.crosswire.org/mailman/listinfo/sword-devel
> > Instructions to unsubscribe/change your settings at above page
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > sword-devel mailing list: sword-devel at crosswire.org
> > http://www.crosswire.org/mailman/listinfo/sword-devel
> > Instructions to unsubscribe/change your settings at above page
>
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20100420/42b7820a/attachment-0001.html>
More information about the sword-devel
mailing list