【问题标题】:Java Android: App crashing when i use string.substring(100, 110)Java Android:当我使用 string.substring(100, 110) 时应用程序崩溃
【发布时间】:2015-10-13 17:49:55
【问题描述】:

我正在尝试从字符串 tekst 中获取子字符串,按下按钮后应用程序崩溃了。这是 onClick 的代码,其余代码都很好,当我执行 setText() 时,它设置得很好,但是当我尝试某种 tekst.substring() 或 indexof 时,它会崩溃。

public void otworz(View view) throws Exception {

    new JSONTask().execute("http://www.filmweb.pl/serial/Biuro-2005-202887");

    String tekst1 = new String(tekst.substring(10,20));
    tView.setText(tekst1);
}

在 logcat 中,我得到了这个:

10-13 19:43:00.321 11118-11118/com.kuba.zneta E/AndroidRuntime:  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.substring(int, int)' on a null object reference

【问题讨论】:

  • 使用 LogCat 检查与您的崩溃相关的 Java 堆栈跟踪:stackoverflow.com/questions/23353173/…
  • “tekst”的值是多少?
  • 检查 tekst 的长度并检查它是否为空或空。
  • 错误是“10-13 19:43:00.321 11118-11118/com.kuba.zneta E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java. lang.String java.lang.String.substring(int, int)' 在空对象引用上 "
  • @KubenQPL 嗯,这意味着tekst 等于null。现在你必须找出它发生的原因以及如何改变它。

标签: java android substring


【解决方案1】:

你应该把这段代码String tekst1 = new String(tekst.substring(10,20)); tView.setText(tekst1);放到asycntask的onPostExecute函数中。

【讨论】:

    【解决方案2】:

    你必须先检查 tekst 的大小,然后设置 textview。下面解释

       if( teskst.length()>=120)
           {
              String str = new String(tekst.substring(100,120));
    
              textview.setText(str);
    
           }
    
           else
    
           textview.setText(str);
    

    【讨论】:

    • 如果遇到任何问题,请告诉我
    猜你喜欢
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多