2013-01-18 4 views
1

따라서 내 앱이 콘텐츠를 수신 할 수 있도록 this 튜토리얼을 따랐습니다. 하지만 내 앱에 무언가를 공유하려고하면 충돌이 발생합니다.다른 앱에서 콘텐츠를 수신 할 때 Android 앱이 충돌 함

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 

사람이 잘못 걸 보여줄 수 :이 충돌 할 때

@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")); 



     } 

    } 

, 그것은 모든 오류를 던졌습니다 : 여기

코드인가?

+0

동일한 문제가 있었지만 매니페스트를 수정 한 후 앱이 다운되었습니다. 매니페스트 파일을 게시 할 수 있습니까? 문제의 원인 일 수 있습니다. –

답변

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에서 문제가 발생하고 라이브러리를 제대로 가져 오는 경우이 작업을 닫고 새 질문을 열 것을 제안합니다. 또한 라이브러리를 먼저 작동시키는 것이 첫 번째 단계입니다. 한 번에 모든 것을 해보지 마십시오. 진단이 어려울 정도로 어려워집니다. –

관련 문제