[問題] 遇到 NullPointerException (已解決)

看板AndroidDev作者 (Mordred)時間10年前 (2013/11/18 00:55), 編輯推噓0(006)
留言6則, 4人參與, 最新討論串1/1
MainActivity.java: http://pastie.org/private/ug3fro2yrh9lukiyxelwww activity_main.xml: http://pastie.org/private/iuck0z7owdnbgudvla13tq strings.xml: http://pastie.org/private/4zibxnwupplfimtqjashsw 這是小弟寫的計算機程式 內容大概是有兩條 TextView, 一行是 expression,使用者輸入按鍵就會顯示在上面 另一行是 result,使用者按下 '=' 就會把結果顯示出來 我只有寫完按下按鈕可以出現 expression 就先測試,結果一 run 就停止了..... 原本還有在提示 ErrorLog 提示 NullPointerException 我把 expression = ""; expressionPrevious = ""; 改成 expression = new String(""); expressionPrevious = new String(""); 以後似乎就好了?!我想說可能是 "" 是常數不能修改,需要先 new 物件 但實際原因還是不太清楚 orz... (我是 Java 新手,比較常寫 C++... ) 因為最後還是不能跑... 以下截錄自 Console [2013-11-18 00:39:03 - Calculator] ------------------------------ [2013-11-18 00:39:03 - Calculator] Android Launch! [2013-11-18 00:39:03 - Calculator] adb is running normally. [2013-11-18 00:39:03 - Calculator] Performing com.example.calculator87.MainActivity activity launch [2013-11-18 00:39:03 - Calculator] Automatic Target Mode: Unable to detect device compatibility. Please select a target device. [2013-11-18 00:39:08 - Calculator] Application already deployed. No need to reinstall. [2013-11-18 00:39:08 - Calculator] Starting activity com.example.calculator87.MainActivity on device TCFY9SFY59V4UKSG [2013-11-18 00:39:08 - Calculator] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.calculator/.MainActivity } 好像沒有什麼跟錯誤有關的訊息?!看起來應該正常才對 然後看 LogCat 狂洗畫面也不知道在寫些什麼 以下節錄自一些 all message 的 LogCat 訊息 (com.example.calculate (Session Filter) 倒是沒東西... ) 11-18 00:32:46.356: I/PowerManagerService(507): setBrightness mButtonLight 0. 11-18 00:32:46.356: D/PowerManagerService(507): updateScreenStateLocked: mDisplayReady=true, newScreenState=2, mWakefulness=1, mWakeLockSummary=0x0, mUserActivitySummary=0x1, mBootCompleted=true 11-18 00:32:46.356: D/IPCThreadState(507): [DN #5] BR_CLEAR_DEATH_NOTIFICATION_DONE cookie 0x616c0e18 11-18 00:32:46.357: D/PowerManagerService(507): handleSandman: canDream=true, mWakefulness=Awake 11-18 00:32:46.360: D/dalvikvm(27092): threadid=34: exiting 11-18 00:32:46.361: D/dalvikvm(27092): threadid=34: bye! 11-18 00:32:46.498: I/SurfaceTextureClient(598): [STC::queueBuffer] (this:0x5e756fb0) fps:2.97, dur:1009.41, max:511.73, min:109.83 11-18 00:32:46.498: I/BufferQueue(133): [StatusBar](this:0x41b6f6f8,api:1) [queue] fps:2.97, dur:1009.41, max:511.57, min:110.01 11-18 00:32:46.531: I/SurfaceFlinger(133): [SurfaceFlinger] fps:2.973932,dur:1008.77,max:511.88,min:100.85 11-18 00:32:46.535: V/Provider/Settings(651): from settings cache , name = pdp_watchdog_poll_interval_ms , value = null 11-18 00:32:46.536: D/ADB_SERVICES(18953): adb fdevent_process list (15) (17) 11-18 00:32:46.536: D/ADB_SERVICES(18953): adb socket read list (17) 11-18 00:32:46.536: D/ADB_SERVICES(18953): read_data=45712 11-18 00:32:46.536: D/ADB_SERVICES(18953): max_read_time=0.000138 max_send_time=0.000081 11-18 00:32:46.537: D/ADB_SERVICES(18953): adb local_socket_ready list (17) 11-18 00:32:46.667: D/PowerManagerDisplayController(507): updateAmbientLux: Possibly brightened, waiting for 300 ms: brighteningLuxThreshold=181.96902, mRecentShortTermAverageLux=217.93811, mRecentLongTermAverageLux=201.8294, mAmbientLux=165.42638 11-18 00:32:46.907: D/PowerManagerDisplayController(507): updateAmbientLux: Canceled debounce: brighteningLuxThreshold=181.96902, darkeningLuxThreshold=132.34111, mRecentShortTermAverageLux=177.04062, mRecentLongTermAverageLux=188.2631, mAmbientLux=165.42638 11-18 00:32:47.316: V/AlarmManager(507): Native set alarm :Alarm{4272c690 type 2 com.google.android.gms} 11-18 00:32:47.316: I/AlarmManager(507): reset poweroff alarm none 11-18 00:32:47.317: V/ActivityManager(507): Broadcast: Intent { act=com.android.internal.telephony.gprs-data-stall flg=0x14 (has extras) } ordered=true userid=0 11-18 00:32:47.322: D/PowerManagerService(507): acquireWakeLockInternal: lock=1107100528, flags=0x1, tag="AlarmManager", ws={WorkSource: uids=[1001]}, uid=1000, pid=507 11-18 00:32:47.323: D/PowerManagerService(507): updateWakeLockSummaryLocked: mWakefulness=Awake, mWakeLockSummary=0x1 11-18 00:32:47.332: D/PowerManagerService(507): newScreenState = 2 11-18 00:32:47.333: D/PowerManagerDisplayController(507): requestPowerState: screenState=2, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, useAutoBrightness=true, useEcoBrightness=false, blockScreenOn=false, waitForNegativeProximity=false 11-18 00:32:47.334: D/Provider/Settings(651): put string name = radio.data.stall.recovery.action , value = 0 userHandle = 0 11-18 00:32:47.335: I/PowerManagerService(507): setBrightness mButtonLight 0. 11-18 00:32:47.335: D/PowerManagerService(507): updateScreenStateLocked: mDisplayReady=true, newScreenState=2, mWakefulness=1, mWakeLockSummary=0x1, mUserActivitySummary=0x1, mBootCompleted=true 11-18 00:32:47.336: D/PowerManagerService(507): handleSandman: canDream=true, mWakefulness=Awake 11-18 00:32:47.337: D/SettingsProvider(507): call request for 0 11-18 00:32:47.338: V/SettingsProvider(507): call_put(system:radio.data.stall.recovery.action=0) for 0 11-18 00:32:47.338: V/SettingsProvider(507): insert(content://settings/system) for user 0 by 0 11-18 00:32:47.338: D/SettingsProvider(507): insert(content://settings/system) for user 0 by 0 11-18 00:32:47.339: D/SettingsProvider(507): redundant, old Value: 0 new value: 0 想破頭想不出為什麼會這樣! 請大家給我指點一下吧!!!謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.66.250.37

11/18 01:08, , 1F
隨便看了一下 你的TextView的取得跟setText時機好像反了
11/18 01:08, 1F

11/18 02:12, , 2F
先取得物件(findViewById) 再 setText看看?
11/18 02:12, 2F

11/18 02:26, , 3F
我把 initialize() 和 setObject() 對調就過了
11/18 02:26, 3F

11/18 02:27, , 4F
一開始是寫對的說,忘記為什麼要把這兩個對調...
11/18 02:27, 4F

11/18 02:28, , 5F
非常感謝一、二樓!!!!!!!! 天阿 T___T 竟然是這種...
11/18 02:28, 5F

11/19 03:01, , 6F
炸exception應該找AndroidRuntime吐的log啊
11/19 03:01, 6F
文章代碼(AID): #1IYFK4Wm (AndroidDev)