2011-02-15 60 views
2

Hola!這是我的第一篇文章。我在下面的代碼 中遇到問題。強制關閉意圖null返回

基本上,您單擊一個EditText,然後您將看到一個文件 瀏覽器。如果你選擇一個文件,全世界都是對的。如果您選擇 手機上的後退/返回按鈕而未選擇文件,則會導致強制關閉 。我認爲這是因爲我從意圖返回了空值 ,但我不知道如何解決,也不知道我應該怎樣嘗試/ 。

非常感謝您的幫助。

代碼:

filename = (EditText) findViewById(R.id.selectFile); 
    filename.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(); 
      intent.addCategory(Intent.CATEGORY_OPENABLE); 
      intent.setType("text/csv"); 
      intent.setAction(Intent.ACTION_GET_CONTENT); 
      startActivityForResult(Intent.createChooser(intent,"Select File"),1); 
     } 
    }); 

從logcat的結果。

十月2日至15日:03:27.224:DEBUG/dalvikvm(133):GC_EXPLICIT釋放74K,52%的遊離2860K/5895K,外部2101K/2456K,暫停69ms 十月2日至15日:03:30.314:INFO/ActivityManager(61):Starting:Intent {cmp = com.aydabtu.BroadcastSMS/.DataManagerActivity} from pid 557 02-15 10:03:30.483:DEBUG/dalvikvm(557):GC_EXTERNAL_ALLOC釋放228K,52%免費2656K/5511K ,外部1465K/1828K,暫停63ms 02-15 10:03:30.633:WARN/AdMobSDK(557):忽略requestFreshAd(),因爲我們現在正在請求廣告。 02-15 10:03:30.643:INFO/AdMobSDK(557):位置信息未用於廣告請求。啓用位置 02:03:30.643:基於AdManager.setAllowUseOfLocation(true)的信息/ AdMobSDK(557):基於廣告或通過設置 02-15 10:03:30.643:INFO/AdMobSDK(557)數據ADMOB_ALLOW_LOCATION_FOR_ADS在AndroidManifest.xml中爲true 02-15 10:03:30.653:INFO/AdMobSDK(557):以測試模式發出廣告請求 02-15 10:03:31.104:INFO/AdMobSDK(557):廣告已返回(493毫秒):AdMob測試Android網絡廣告 02-15 10:03:31.224:INFO/ActivityManager(61):顯示com.aydabtu.BroadcastSMS/.DataManagerActivity:+ 855ms 02-15 10:03:33.903:INFO/ActivityManager(61):開始:Intent {act = android.intent.action.CHOOSER cmp = android/com.android.internal.app.ChooserActivity(has extras)}從pid 557 02-15 10:03:34.254: DEBUG/dalvikvm(122):GC_EXTERNAL_ALLOC釋放20K,44%免費3456K/6151K,前ternal 2546K/2586K,暫停143ms 02-15 10:03:35.124:INFO/ActivityManager(61):Displayed android/com.android.internal.app.ChooserActivity:+ 1s111ms 02-15 10:03:36.064:DEBUG/dalvikvm(61):GC_CONCURRENT已釋放959K,47%空閒4099K/7687K,外部2440K/3047K,暫停7ms + 19ms 02-15 10:03:40.623:警告/ KeyCharacterMap(557):沒有鍵盤用於編號0 02 -15 10:03:40.633:WARN/KeyCharacterMap(557):使用默認鍵盤映射:/system/usr/keychars/qwerty.kcm.bin 02-15 10:03:40.864:DEBUG/AndroidRuntime(557):關閉VM 02:10:03:40.864:WARN/dalvikvm(557):threadid = 1:線程以未捕獲的異常退出(group = 0x40015560) 02-15 10:03:40.953:ERROR/AndroidRuntime(557):致命EXCEPTION:main 02-15 10:03:40.953:ERROR/AndroidRuntime(557):java.la ng.RuntimeException:無法將結果ResultInfo {who = null,request = 1,result = 0,data = null}傳遞給activity {com.aydabtu.BroadcastSMS/com.aydabtu.BroadcastSMS.DataManagerActivity}:java.lang.NullPointerException 02 -15 10:03:40.953:錯誤/ AndroidRuntime(557):在android.app.ActivityThread.deliverResults(ActivityThread.java:2496) 02-15 10:03:40.953:錯誤/ AndroidRuntime(557):在android。 app.ActivityThread.handleSendResult(ActivityThread.java:2538) 02-15 10:03:40.953:ERROR/AndroidRuntime(557):at android.app.ActivityThread.access $ 2000(ActivityThread.java:117) 02-15 10 :03:40.953:錯誤/ AndroidRuntime(557):在android.app.ActivityThread $ H。handleMessage(ActivityThread.java:958) 02-15 10:03:40.953:ERROR/AndroidRuntime(557):at android.os.Handler.dispatchMessage(Handler.java:99) 02-15 10:03:40.953: ERROR/AndroidRuntime(557):at android.os.Looper.loop(Looper.java:123) 02-15 10:03:40.953:ERROR/AndroidRuntime(557):at android.app.ActivityThread.main(ActivityThread。 java:3647) 02:10:03:40.953:ERROR/AndroidRuntime(557):at java.lang.reflect.Method.invokeNative(Native Method) 02-15 10:03:40.953:ERROR/AndroidRuntime(557 ):at java.lang.reflect.Method.invoke(Method.java:507) 02-15 10:03:40.953:ERROR/AndroidRuntime(557):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:839) 02-15 10:03:40.953:ERROR/AndroidRuntime(557):at com.android.internal.os.ZygoteInit.main(ZygoteIn it.java:597) 02:10:03:40.953:ERROR/AndroidRuntime(557):at dalvik.system.NativeStart.main(Native Method) 02-15 10:03:40.953:ERROR/AndroidRuntime(557 ):引起:java.lang.NullPointerException 02-15 10:03:40.953:ERROR/AndroidRuntime(557):at com.aydabtu.BroadcastSMS.DataManagerActivity.onActivityResult(DataManagerActivity.java:93) 02-15 10: 03:40.953:錯誤/ AndroidRuntime(557):at android.app.Activity.dispatchActivityResult(Activity.java:3907) 02-15 10:03:40.953:ERROR/AndroidRuntime(557):at android.app.ActivityThread。 deliverResults(ActivityThread.java:2492) 02-15 10:03:40.953:ERROR/AndroidRuntime(557):... 11更多 02-15 10:03:41.733:WARN/ActivityManager(61):強制結束活動com.aydabtu.BroadcastSMS/.DataManagerActivity 02-15 10:03:42.244:WARN/ActivityManager(61):HistoryRecord的活動暫停超時{406cdfd8 com.aydabtu.BroadcastSMS/.DataManagerActivity} 02-15 10:03:44.084:INFO/Process(557)發送信號。 PID:557 SIG:9 02-15 10:03:44.104:INFO/ActivityManager(61):進程com.aydabtu.BroadcastSMS(pid 557)已經死亡。 02:10:03:44.124:ERROR/InputDispatcher(61):channel'406c91a0 com.aydabtu.BroadcastSMS/com.aydabtu.BroadcastSMS.BroadcastSMS(server)'〜Consumer closed input channel or an occurred。 events = 0x8 02-15 10:03:44.124:ERROR/InputDispatcher(61):channel'406c91a0 com.aydabtu.BroadcastSMS/com.aydabtu.BroadcastSMS.BroadcastSMS(server)'〜Channel is unrerecoverably broken and will dispos! 02:10:03:44.154:INFO/WindowManager(61):WIN DEATH:窗口{406c91a0 com.aydabtu.BroadcastSMS/com.aydabtu.BroadcastSMS.BroadcastSMS paused = false} 02-15 10:03:44.274: INFO/WindowManager(61):WIN DEATH:窗口{406e5f80 com.aydabtu.BroadcastSMS/com.aydabtu.BroadcastSMS.DataManagerActivity paused = false} 02-15 10:03:44.383:INFO/WindowManager(61):WIN DEATH:窗口{406c4d58 android/com.android.internal.app.ChooserActivity paused = false} 02-15 10:03:44.423:ERROR/InputDispatcher(61):接收到未知輸入通道的虛假接收回調。 fd = 165,事件= 0x8 02-15 10:03:44.423:ERROR/InputDispatcher(61):接收到未知輸入通道的寄生接收回調。 fd = 176,events = 0x8 02-15 10:03:45.084:WARN/InputManagerService(61):有RemoteException發送setActive(false)通知給pid 557 uid 10032

我想我有這個問題。謝謝你的線索。

+2

請向我們展示fc的完整堆棧跟蹤。使用Logcat:在eclipse中打開DDMS透視圖,或者從命令行運行`adb logcat`。 – 2011-02-15 00:16:03

回答

2

事實證明我忘了在'其他'情況下包括!REULT_OK。哎呀。

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
     if (requestCode == 1) { 
      // do something 
     } 
    } else { 
     // do something else 
    } 
}