19 Apr 2010, 02:14
Generic-user-small

John C. Macal (6 posts)

So completed the translate program and when i run i get a force close when i try to input i check Logcat and this is what it found:

04-19 02:11:21.010: INFO/ActivityManager(66): Start proc org.example.translate for activity org.example.translate/.Translate: pid=271 uid=10024 gids={3003}
04-19 02:11:21.180: DEBUG/dalvikvm(255): LinearAlloc 0×0 used 675676 of 4194304 (16%)
04-19 02:11:21.460: INFO/jdwp(271): received file descriptor 20 from ADB
04-19 02:11:21.670: DEBUG/ddm-heap(271): Got feature list request
04-19 02:11:23.420: INFO/ActivityManager(66): Displayed activity org.example.translate/.Translate: 2764 ms (total 2764 ms)
04-19 02:11:30.479: INFO/ARMAssembler(66): generated scanline__00000077:03515104_00001A01_00000000 [ 46 ipp] (68 ins) at [0×27fcc8:0×27fdd8] in 3123862 ns
04-19 02:11:32.310: WARN/KeyCharacterMap(271): No keyboard for id 0
04-19 02:11:32.320: WARN/KeyCharacterMap(271): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
04-19 02:11:34.721: DEBUG/AndroidRuntime(271): Shutting down VM
04-19 02:11:34.731: WARN/dalvikvm(271): threadid=3: thread exiting with uncaught exception (group=0×4001aa28)
04-19 02:11:34.751: ERROR/AndroidRuntime(271): Uncaught handler: thread main exiting due to uncaught exception
04-19 02:11:34.811: ERROR/AndroidRuntime(271): java.lang.StringIndexOutOfBoundsException
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at java.lang.String.substring(String.java:1571)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at org.example.translate.Translate.getLang(Translate.java:160)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at org.example.translate.Translate.access$6(Translate.java:156)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at org.example.translate.Translate$3.run(Translate.java:142)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at android.os.Handler.handleCallback(Handler.java:587)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at android.os.Handler.dispatchMessage(Handler.java:92)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at android.os.Looper.loop(Looper.java:123)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at android.app.ActivityThread.main(ActivityThread.java:4203)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at java.lang.reflect.Method.invokeNative(Native Method)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at java.lang.reflect.Method.invoke(Method.java:521)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
04-19 02:11:34.811: ERROR/AndroidRuntime(271): at dalvik.system.NativeStart.main(Native Method)
04-19 02:11:34.891: INFO/Process(66): Sending signal. PID: 271 SIG: 3
04-19 02:11:34.891: INFO/dalvikvm(271): threadid=7: reacting to signal 3
04-19 02:11:34.891: ERROR/dalvikvm(271): Unable to open stack trace file ’/data/anr/traces.txt’: Permission denied
04-19 02:11:39.360: INFO/Process(271): Sending signal. PID: 271 SIG: 9
04-19 02:11:39.411: INFO/ActivityManager(66): Process org.example.translate (pid 271) has died.
04-19 02:11:39.440: INFO/WindowManager(66): WIN DEATH: Window{43813440 org.example.translate/org.example.translate.Translate paused=false}
04-19 02:11:39.629: WARN/UsageStats(66): Unexpected resume of com.android.launcher while already resumed in org.example.translate
04-19 02:11:40.040: WARN/InputManagerService(66): Got RemoteException sending setActive(false) notification to pid 271 uid 10024
04-19 02:11:40.639: DEBUG/dalvikvm(174): GC freed 2312 objects / 159920 bytes in 505ms

19 Apr 2010, 20:15
Burnette_ed_pragsmall

Ed Burnette (1316 posts)

To debug this I’d print out the value of several of the variables in the getLang() method:

      String result = spinner.getSelectedItem().toString();
      Log.d("Translate", "item = " + spinner.getSelectedItem()
         + " , " + result = " + result);
      int lparen = result.indexOf('(');
      int rparen = result.indexOf(')');
      Log.d("lparen = " + lparen + " , rparen = " + rparen);
      result = result.substring(lparen + 1, rparen);

You may need to add an “import android.util.Log;” in the import block near the top of the file. Alternatively, if you’re comfortable in the debugger just set a breakpoint at the beginning of getLang() and step through it, looking at those variable values.

Either the selected item isn’t what it’s supposed to be, or the string value of that item isn’t what it’s supposed to be. If the former, check that the setSelection() calls in setAdapters() are done correctly. If the latter, check the languages array in res/values/arrays.xml to make sure they all are formatted like this:

      <item>English (en)</item>

In that one, for example, the “en” is the language code that getLang() is trying to extract.

15 Jul 2010, 15:03
Generic-user-small

Magnus Karlsson (1 post)

Hi! First of all I want to thank for a great book! Second… I have a problem…
I tried to do the Tranlate program but keep getting this error, I`ve even copied all code from the book’s website.

07-15 14:59:08.437: DEBUG/TranslateTask(631): doTranslate(tree, en, fr)
07-15 14:59:08.867: ERROR/TranslateTask(631): IOException
07-15 14:59:08.867: ERROR/TranslateTask(631): java.net.UnknownHostException: Host is unresolved: ajax.googleapis.com:80
07-15 14:59:08.867: ERROR/TranslateTask(631): at java.net.Socket.connect(Socket.java:1038)
07-15 14:59:08.867: ERROR/TranslateTask(631): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.(HttpConnection.java:62)
07-15 14:59:08.867: ERROR/TranslateTask(631): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpCo…
07-15 14:59:08.867: ERROR/TranslateTask(631): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTP…
07-15 14:59:08.867: ERROR/TranslateTask(631): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect…
07-15 14:59:08.867: ERROR/TranslateTask(631): at se.example.translate.TranslateTask.doTranslate(TranslateTask.java:69)
07-15 14:59:08.867: ERROR/TranslateTask(631): at se.example.translate.TranslateTask.run(TranslateTask.java:29)
07-15 14:59:08.867: ERROR/TranslateTask(631): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
07-15 14:59:08.867: ERROR/TranslateTask(631): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-15 14:59:08.867: ERROR/TranslateTask(631): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-15 14:59:08.867: ERROR/TranslateTask(631): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
07-15 14:59:08.867: ERROR/TranslateTask(631): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
07-15 14:59:08.867: ERROR/TranslateTask(631): at java.lang.Thread.run(Thread.java:1096)
07-15 14:59:08.867: DEBUG/TranslateTask(631): -> returned (Translation error)
07-15 14:59:08.917: DEBUG/TranslateTask(631): doTranslate((Translation error), fr, en)
07-15 14:59:09.018: ERROR/TranslateTask(631): IOException
07-15 14:59:09.018: ERROR/TranslateTask(631): java.net.UnknownHostException: Host is unresolved: ajax.googleapis.com:80
07-15 14:59:09.018: ERROR/TranslateTask(631): at java.net.Socket.connect(Socket.java:1038)
07-15 14:59:09.018: ERROR/TranslateTask(631): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.(HttpConnection.java:62)
07-15 14:59:09.018: ERROR/TranslateTask(631): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpCo…
07-15 14:59:09.018: ERROR/TranslateTask(631): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTP…
07-15 14:59:09.018: ERROR/TranslateTask(631): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect…
07-15 14:59:09.018: ERROR/TranslateTask(631): at se.example.translate.TranslateTask.doTranslate(TranslateTask.java:69)
07-15 14:59:09.018: ERROR/TranslateTask(631): at se.example.translate.TranslateTask.run(TranslateTask.java:34)
07-15 14:59:09.018: ERROR/TranslateTask(631): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
07-15 14:59:09.018: ERROR/TranslateTask(631): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-15 14:59:09.018: ERROR/TranslateTask(631): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-15 14:59:09.018: ERROR/TranslateTask(631): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
07-15 14:59:09.018: ERROR/TranslateTask(631): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
07-15 14:59:09.018: ERROR/TranslateTask(631): at java.lang.Thread.run(Thread.java:1096)
07-15 14:59:09.018: DEBUG/TranslateTask(631): -> returned (Translation error)
07-15 14:59:10.837: DEBUG/dalvikvm(118): GC_EXPLICIT freed 884 objects / 50152 bytes in 167ms

16 Jul 2010, 19:23
Burnette_ed_pragsmall

Ed Burnette (1316 posts)

It requires an active Internet data connection, with no firewalls in between you and the google server. Try entering this address in the web browser on your phone:

http://ajax.googleapis.com/nonesuch

If you get an error that says “The URL /nonesuch was not found on this server”, then your connection is working. If you get a different error, like a host not found error, then there’s something wrong with your Internet data connection.

  You must be logged in to comment