2016-06-23 5 views
0

에서 java.lang.NullPointerException 오류가 발생했습니다.이 오류에 대한 몇 가지 보고서를 받았지만 테스트 장비가 있으며 모든 것이 올바르게됩니다. 이상한 점은 모든 오류 보고서가 모바일 samsung에서 전송된다는 것입니다. 문제를 해결할 수 없다면 어떻게 될까요? 오류 코드 :Galaxy samsung

Último informe 
18 de jun. 4:57 
Informes de esta semana 
1 
Informes totales 
1 
Versión de la aplicación 

25 
1 
Versión de Android 

Android 5.1 
1 
Dispositivo 
Galaxy S6 Edge+ (zenlte) 1 
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference 
    at ro.vrt.videoplayerstreaming.TorrentPlayerFragment$1.onClick(TorrentPlayerFragment.java:107) 
    at android.view.View.performClick(View.java:5254) 
    at android.widget.TextView.performClick(TextView.java:10557) 
    at android.view.View$PerformClick.run(View.java:21203) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:145) 
    at android.app.ActivityThread.main(ActivityThread.java:6897) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 

자바 :

@SuppressLint("SetTextI18n") 
public class TorrentPlayerFragment extends Fragment implements TorrentListener { 


    private Button button2; 
    private Button button; 
    private ProgressBar progressBar; 
    private TorrentStream torrentStream; 

    String mStreamUrl; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.activity_torrent_player_fragment, container, false); 


     mStreamUrl = ((EditText) v.findViewById(R.id.bTorrentUrl)).getText().toString(); 

     String action = getActivity().getIntent().getAction(); 
     Uri data = getActivity().getIntent().getData(); 
     if (action != null && action.equals(Intent.ACTION_VIEW) && data != null) { 
      try { 
       mStreamUrl = URLDecoder.decode(data.toString(), "utf-8"); 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } 
     } 

     TorrentOptions torrentOptions = new TorrentOptions.Builder() 
       .saveLocation(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)) 
       .removeFilesAfterStop(true) 
       .build(); 

     torrentStream = TorrentStream.init(torrentOptions); 
     torrentStream.addListener(this); 

     button2 = (Button) v.findViewById(R.id.button2); 
     button2.setVisibility(View.GONE); 

     button = (Button) v.findViewById(R.id.button); 
     button.setOnClickListener(mOnClickListener); 
     progressBar = (ProgressBar) v.findViewById(R.id.progress); 

     progressBar.setMax(100); 



     return v; 


    } 
    @Override 
    public void onResume() { 
     super.onResume(); 
    } 

    View.OnClickListener mOnClickListener = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      progressBar.setProgress(0); 
      if(torrentStream.isStreaming()) { 
       torrentStream.stopStream(); 
       button.setText("Start stream"); 
       button2.setVisibility(View.GONE); 
       return; 
      } 
      Bundle args = getArguments(); 
      mStreamUrl = args.getString("url"); 
      torrentStream.startStream(mStreamUrl); 
      button2.setVisibility(View.GONE); 
      button.setText("Stop stream"); 
     } 
    }; 



    @Override 
    public void onStreamPrepared(Torrent torrent) { 
     Log.d("Torrent", "OnStreamPrepared"); 
     torrent.startDownload(); 
    } 

    @Override 
    public void onStreamStarted(Torrent torrent) { 
     Log.d("Torrent", "onStreamStarted"); 
    } 

    @Override 
    public void onStreamError(Torrent torrent, Exception e) { 
     Log.e("Torrent", "onStreamError", e); 
     button.setText("Start stream"); 
    } 

    @Override 
    public void onStreamReady(Torrent torrent) { 
     progressBar.setProgress(100); 
     Log.d("Torrent", "onStreamReady: " + torrent.getVideoFile()); 


     final String UrlFinalTorrent = torrent.getVideoFile().toString(); 

     button2.setVisibility(View.VISIBLE); 

     button2.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent intent = new Intent(getActivity(), MainActivity.class); 
       intent.putExtra("url", UrlFinalTorrent); 
       startActivity(intent); 
      } 
     }); 


    } 
    @Override 
    public void onStreamProgress(Torrent torrent, StreamStatus status) { 
     if(status.bufferProgress <= 100 && progressBar.getProgress() < 100 && progressBar.getProgress() != status.bufferProgress) { 
      Log.d("Torrent", "Progress: " + status.bufferProgress); 
      progressBar.setProgress(status.bufferProgress); 
     } 
    } 

    @Override 
    public void onStreamStopped() { 
     Log.d("Torrent", "onStreamStopped"); 
    } 
} 

나는 문제가 여기에서 유래 생각 :

 final String UrlFinalTorrent = torrent.getVideoFile().toString(); 

    button2.setVisibility(View.VISIBLE); 

    button2.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(getActivity(), MainActivity.class); 
      intent.putExtra("url", UrlFinalTorrent); 
      startActivity(intent); 
     } 
    }); 

하지만 내가 말한대로 나는 안드로이드 장치 에뮬레이터에 모든 노력을하고 일이 효과가있다. 그러나이 오류는 삼성 기기에 나타납니다. 감사합니다.

답변

2

스택 트레이스는 변수 mOnClickListener에 대해 인스턴스화 된 익명 내부 클래스를 가리키는 것으로 명확하게 보인다. 이것은 소스 순서대로 클래스 TorrentPlayerFragment (스택 추적으로 표시됨)에 나타나는 첫 번째 내부 클래스이며 NPE를 throw하는 것으로보고 된 메서드 호출을 포함합니다. android.os.Bundle.getString(java.lang.String). 특히,

  Bundle args = getArguments(); 
      mStreamUrl = args.getString("url"); 

getArguments() 영향을받는 환경에서 null을 반환 꽤 것으로 보인다. 이것은 Android Fragment getArguments() returns null과 관련이있는 것 같지만 상황이나 해결책이 동일하다는 확신을 가질 수 없습니다.

+0

제 질문에 실례합니다. 왜 어떤 것들은 안드로이드 장치를 작동 시키는가? 그리고 당신은 무엇을 추천합니까? 번들을 교체 하시겠습니까? –

+0

@DiaconuLiviu, 더 큰 범위가 불분명하기 때문에 특정 상황에 가장 적합한 솔루션이 무엇인지 확신 할 수 없습니다. 그러나 제가 링크 한 다른 SO 질문에 대한 답변에는 고려해야 할 몇 가지 조언이 있습니다. –

+0

나는 문자열 URL이 유효하지 않은, 자바 잘못된 페이지 각각을 해결. –

관련 문제