[sword-devel] Bishop source / JNI instructions

Troy A. Griffitts scribe at crosswire.org
Tue Apr 20 02:47:56 MST 2010


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




More information about the sword-devel mailing list