2013-01-18 140 views
1

因此,我遵循this教程,以便我的應用程序可以接收內容。但是當我嘗試將某些內容分享給我的應用程序時,它會崩潰。Android應用程序從其他應用程序接收內容時崩潰

下面的代碼:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Intent intent = getIntent(); 
     String action = intent.getAction(); 
     String type = intent.getType(); 

     if (Intent.ACTION_SEND.equals(action) && type != null) { 
      if ("text/plain".equals(type)) { 
       handleSendText(intent); 
      } 
      else { 
      } 
     } 
    } 

void handleSendText (Intent intent) { 
     String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT); 
     if (sharedText != null) { 
      //Display definition. Use HTTP GET for Wikitonary. 

      CardUI mCardView = (CardUI) findViewById(R.id.cardsview); 
      mCardView.setSwipeable(true); 

      //mCardView.addCard(new MyCard("1 card")); 



     } 

    } 

崩潰時,它拋出所有這些錯誤:

01-18 17:24:34.735: E/AndroidRuntime(1937): FATAL EXCEPTION: main 
01-18 17:24:34.735: E/AndroidRuntime(1937): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dictionary/com.example.dictionary.MainActivity}: java.lang.NullPointerException 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.os.Looper.loop(Looper.java:137) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.app.ActivityThread.main(ActivityThread.java:5039) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at dalvik.system.NativeStart.main(Native Method) 
01-18 17:24:34.735: E/AndroidRuntime(1937): Caused by: java.lang.NullPointerException 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at com.example.dictionary.MainActivity.handleSendText(MainActivity.java:42) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at com.example.dictionary.MainActivity.onCreate(MainActivity.java:29) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.app.Activity.performCreate(Activity.java:5104) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
01-18 17:24:34.735: E/AndroidRuntime(1937):  ... 11 more 
01-18 17:24:43.078: I/Process(1937): Sending signal. PID: 1937 SIG: 9 

誰能告訴我有什麼不對?

+0

我有同樣的問題,但應用程序崩潰後,我修改了清單,請你張貼你的Manifest文件?這可能會導致問題。 –

回答

0

它接縫堆棧跟蹤的幫助部分:

01-18 17:24:34.735: E/AndroidRuntime(1937):  at com.example.dictionary.MainActivity.handleSendText(MainActivity.java:42) 

=>看看線42

如果你不喜歡調試器(或不能使用一個由於某種原因),記錄可疑變量的值以找到null

+0

如果'intent'爲null,'String action = intent.getAction();'將首先失敗。基於堆棧跟蹤,OP將它放入'handleSendText'中,因此'intent'不應該爲null。 –

+0

@Aaron McIver:你說得對。你找到了更好的可疑'mCardView'。很明顯,如果我們有行號。 – MrSmith42

2

看起來您的mCardViewnull因此您撥打mCardView.setSwipeable(true);的電話將失敗。

+0

就是這樣。我正在使用外部[圖書館](http://www.androidviews.net/2012/12/cardsui/)。那麼我怎樣才能修復null變量呢?我(想)我正確地添加了庫。 – irosenb

+1

看起來好像您無法找到您在項目中定義的視圖,我需要更多詳細信息來幫助找出原因。如果這是IDE的問題並正確導入庫,我會建議關閉它並打開一個新問題。此外,讓圖書館先工作應該是你的第一步。不要試圖一次性解決所有問題,因爲這會使診斷難度超過預期。 –