에서 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);
}
});
하지만 내가 말한대로 나는 안드로이드 장치 에뮬레이터에 모든 노력을하고 일이 효과가있다. 그러나이 오류는 삼성 기기에 나타납니다. 감사합니다.
제 질문에 실례합니다. 왜 어떤 것들은 안드로이드 장치를 작동 시키는가? 그리고 당신은 무엇을 추천합니까? 번들을 교체 하시겠습니까? –
@DiaconuLiviu, 더 큰 범위가 불분명하기 때문에 특정 상황에 가장 적합한 솔루션이 무엇인지 확신 할 수 없습니다. 그러나 제가 링크 한 다른 SO 질문에 대한 답변에는 고려해야 할 몇 가지 조언이 있습니다. –
나는 문자열 URL이 유효하지 않은, 자바 잘못된 페이지 각각을 해결. –