2011-01-21 2 views
0

У меня возникла странная проблема.NumberFormatException в обработке GPS

Я разрабатываю программу для регистрации GPS и показаний датчиков периодически. Мой друг запускает код на своей машине с помощью Eclipse Galileo 3.6, и он отлично подходит для нее.

Когда я запускаю код на своей машине с Eclipse Galileo 3.5.2, он показывает, что сервис неожиданно остановился.

У нас такая же версия JDK. Я не могу понять, что может быть точной проблемой.

Пожалуйста, дайте мне знать, какую еще информацию мне нужно дать, чтобы исправить проблему.

LogCat

I/ActivityManager(1104): Start proc com.sensor.test for service com.sensor.test/.SensorReadings: pid=3539 uid=10057 gids={3003, 1015} 
D/AndroidRuntime(3539): Shutting down VM 
W/dalvikvm(3539): threadid=1: thread exiting with uncaught exception (group=0x4001d7e0) 
E/AndroidRuntime(3539): FATAL EXCEPTION: main 
E/AndroidRuntime(3539): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000000 (has extras) } in [email protected] 
E/AndroidRuntime(3539): at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:905) 
E/AndroidRuntime(3539): at android.os.Handler.handleCallback(Handler.java:587) 
E/AndroidRuntime(3539): at android.os.Handler.dispatchMessage(Handler.java:92) 
E/AndroidRuntime(3539): at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(3539): at android.app.ActivityThread.main(ActivityThread.java:4627) 
E/AndroidRuntime(3539): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(3539): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(3539): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
E/AndroidRuntime(3539): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
E/AndroidRuntime(3539): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(3539): Caused by: java.lang.NullPointerException 
E/AndroidRuntime(3539): at com.sensor.test.SensorReadings$2.onReceive(SensorReadings.java:327) 
E/AndroidRuntime(3539): at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:892) 
E/AndroidRuntime(3539): ... 9 more 
W/ActivityManager(1104): Activity destroy timeout for HistoryRecord{44b38508 com.sensor.test/.MainScreen} 
D/WifiService(1104): acquireWifiLockLocked: WifiLock{NetworkLocationProvider type=2 [email protected]} 
D/LocationMasfClient(1104): getNetworkLocation(): Location not found in cache, making network request 
D/LocationMasfClient(1104): getNetworkLocation(): Number of prefetched entries 10 
E/LocationMasfClient(1104): getNetworkLocation(): Returning *server* computed location with accuracy 28 
D/libgps (1104): GpsInterface_inject_location(35.772249, -78.673950, 28.000) 
D/WifiService(1104): releaseWifiLockLocked: WifiLock{NetworkLocationProvider type=2 [email protected]} 
D/WifiService(1104): acquireWifiLockLocked: WifiLock{NetworkLocationProvider type=2 [email protected]} 
D/WifiService(1104): releaseWifiLockLocked: WifiLock{NetworkLocationProvider type=2 [email protected]} 
D/NativeCrypto(1104): Freeing OpenSSL session 
D/dalvikvm(1104): GC_FOR_MALLOC freed 22104 objects/1169312 bytes in 128ms 
D/NativeCrypto(1104): Freeing OpenSSL session 
I/Process (3539): Sending signal. PID: 3539 SIG: 9 
W/InputManagerService(1104): Window already focused, ignoring focus gain of: [email protected] 
I/ActivityManager(1104): Process com.sensor.test (pid 3539) has died. 

Соответствующий код для линии 88 с синтаксический происходит:

public void startService(){ 
     //startService(new Intent(MainScreen.this,SensorReadings.class)); 
     Intent intent = new Intent(MainScreen.this, SensorReadings.class); 
     **intent.putExtra("lp", Integer.parseInt(""+longPeriod.getText()));// LINE 88** 
     intent.putExtra("gp", Integer.parseInt(""+gpsPeriod.getText())); 
     intent.putExtra("sp", Integer.parseInt(""+snrPeriod.getText())); 
     //startActivity(intent); 
     startService(intent); 
    } 

Спасибо. AG

+3

Что говорит logcat со службой неожиданно неожиданно? –

+1

Кроме того, вы используете одни и те же эмуляторы? Это не похоже на проблему Eclipse. – Matt

+0

Я использую телефон дроида Мото. – Glex

ответ

0

Я не понимаю, почему вы кладете "".

Так, чтобы убедиться, что это не проблема, попробуйте либо это:

  • intent.putExtra("lp", Integer.parseInt(longPeriod.getText())); intent.putExtra("gp", Integer.parseInt(gpsPeriod.getText())); intent.putExtra("sp", Integer.parseInt(snrPeriod.getText()));

или

  • String lp = longPeriod.getText();
    String gp = gpsPeriod.getText();
    String sp = snrPeriod.getText();
    intent.putExtra("lp", Integer.parseInt(lp)); intent.putExtra("gp", Integer.parseInt(gp)); intent.putExtra("sp", Integer.parseInt(sp));

Второй способ лучше дебютантка ugging ... так что вы можете видеть, что на самом деле происходит.

1
E/AndroidRuntime(2934): java.lang.NumberFormatException: unable to parse '' as integer 
E/AndroidRuntime(2934): at java.lang.Integer.parseInt(Integer.java:412) 
E/AndroidRuntime(2934): at java.lang.Integer.parseInt(Integer.java:382) 
E/AndroidRuntime(2934): at com.sensor.test.MainScreen.startService(MainScreen.java:88) 

Возможно, на линии 88 в MainScreen.java, ваш метод startService звонит Integer.parseInt с пустой строкой?

Можете ли вы показать нам соответствующий код?

+0

@Glex - отредактируйте ваш вопрос и включите этот код. Используйте 4 пробела или выделите код и нажмите кнопку кода формата ('{}'). –

+0

извините Берт ... На самом деле я показал неправильную часть кода. Я обновлю соответствующий код в вопросе как можно скорее. – Glex

+0

@Glex - прохладный. Надеюсь, что все «сделайте это» и «сделайте это» директивы от всех вас не обескураживают. Все просто пытаются помочь вам получить максимум от этого сайта. –