After further debugging, it seems that the issue is as follows:

In IOUtils.loadByteArray(String filename), the method is returning an empty
byte array.  But, the filename is a valid File.  It is stored in the
internal application memory:

/data/data/com.me.android/files/apertium/apertium-en-es/data/modes/es-en_US.mode

I'm assuming that storing these files in the internal memory are not an
issue, as I have experienced the same problem when storing the files on an
SD Card.  The permissions for the .mode files are -rw------

Any thoughts?

Thanks!



On Wed, Feb 20, 2013 at 11:35 AM, Kevin Behr <[email protected]> wrote:

> Hi everyone,
>
> I have successfully created a sample Java program that uses lttoolbox.java
> to perform translations with various language pairs.
>
> I then started porting the project to Android.  Everything looks good so
> far - I am able to get available modes using
> Translator.getAvailableModes().  I was able to reuse much of the code from
> my sample Java project, with help from the Apertium On Mobile project (
> http://wiki.apertium.org/wiki/Apertium_On_Mobile).
>
> For some reason, I'm getting an IndexOutOfBoundsException after calling
> Translator.translate(s).  I was wondering if anyone with any experience can
> look at my stacktrace to try and figure out what the issue may be?  I'm
> assuming that it is Android related, since the code works without any
> problems in my sample Java program:
>
> According to the stacktrace, the problem lies within the code in the
> following classes:
>
> java.lang.Runtime.exec(Runtime.java:275)
> org.apertium.pipeline.Dispatcher.doUnknown(Dispatcher.java:204)
>
> Line 204 of Dispatcher.java is:
>
> final Process extProcess = Runtime.getRuntime().exec(prog.getFullPath() +
> " " + prog.getParameters(), null, tempDir);
>
>
> Here is the stacktrace:
>
> 02-20 11:31:50.921: W/System.err(26732):
> java.lang.IndexOutOfBoundsException
> 02-20 11:31:50.931: W/System.err(26732): at
> java.lang.ProcessManager.exec(ProcessManager.java:184)
> 02-20 11:31:50.931: W/System.err(26732): at
> java.lang.Runtime.exec(Runtime.java:189)
> 02-20 11:31:50.931: W/System.err(26732): at
> java.lang.Runtime.exec(Runtime.java:275)
> 02-20 11:31:50.931: W/System.err(26732): at
> org.apertium.pipeline.Dispatcher.doUnknown(Dispatcher.java:204)
> 02-20 11:31:50.931: W/System.err(26732): at
> org.apertium.pipeline.Dispatcher.dispatch(Dispatcher.java:287)
> 02-20 11:31:50.931: W/System.err(26732): at
> org.apertium.Translator.dispatch(Translator.java:467)
> 02-20 11:31:50.931: W/System.err(26732): at
> org.apertium.Translator.translate(Translator.java:438)
> 02-20 11:31:50.931: W/System.err(26732): at
> org.apertium.Translator.translate(Translator.java:385)
> 02-20 11:31:50.931: W/System.err(26732): at
> org.apertium.Translator.translate(Translator.java:381)
> 02-20 11:31:50.931: W/System.err(26732): at
> org.apertium.Translator.translate(Translator.java:377)
> 02-20 11:31:50.931: W/System.err(26732): at
> org.apertium.Translator.translate(Translator.java:360)
> 02-20 11:31:50.931: W/System.err(26732): at
> com.language_now.android.ApertiumActivity.translate(ApertiumActivity.java:112)
> 02-20 11:31:50.931: W/System.err(26732): at
> java.lang.reflect.Method.invokeNative(Native Method)
> 02-20 11:31:50.931: W/System.err(26732): at
> java.lang.reflect.Method.invoke(Method.java:507)
> 02-20 11:31:50.931: W/System.err(26732): at
> android.view.View$1.onClick(View.java:2186)
> 02-20 11:31:50.931: W/System.err(26732): at
> android.view.View.performClick(View.java:2532)
> 02-20 11:31:50.931: W/System.err(26732): at
> android.view.View$PerformClick.run(View.java:9308)
> 02-20 11:31:50.931: W/System.err(26732): at
> android.os.Handler.handleCallback(Handler.java:587)
> 02-20 11:31:50.931: W/System.err(26732): at
> android.os.Handler.dispatchMessage(Handler.java:92)
> 02-20 11:31:50.931: W/System.err(26732): at
> android.os.Looper.loop(Looper.java:150)
> 02-20 11:31:50.931: W/System.err(26732): at
> android.app.ActivityThread.main(ActivityThread.java:4333)
> 02-20 11:31:50.931: W/System.err(26732): at
> java.lang.reflect.Method.invokeNative(Native Method)
> 02-20 11:31:50.931: W/System.err(26732): at
> java.lang.reflect.Method.invoke(Method.java:507)
> 02-20 11:31:50.931: W/System.err(26732): at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
> 02-20 11:31:50.931: W/System.err(26732): at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
> 02-20 11:31:50.931: W/System.err(26732): at
> dalvik.system.NativeStart.main(Native Method)
>
> Thanks!
>
> Kevin
>
>
>
>
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Apertium-stuff mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/apertium-stuff

Reply via email to