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