Java 如果用户输入一个简单的文本,为什么应用程序会崩溃;“嗨”;

Java 如果用户输入一个简单的文本,为什么应用程序会崩溃;“嗨”;,java,android-studio,crash,Java,Android Studio,Crash,资料来源是: MainActivity.java- package com.amostrone.akash.safebrowser; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.wid

资料来源是: MainActivity.java-

package com.amostrone.akash.safebrowser;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    public final static String EXTRA_MESSAGE = "com.amostrone.akash.safebrowser.MESSAGE";

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

    public void search(View view) {

        Intent intent = new Intent(this, Browser.class);
        EditText editText = (EditText) findViewById(R.id.editText);
        String message = editText.getText().toString();

        if(message == null || message.trim().equals("")) {
            Toast.makeText(this, "No Input", Toast.LENGTH_SHORT).show();
            message = "http://www.android.com"; // TODO Add your own WEBSITE
        }
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }
}
MainActivity.xml`

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.amostrone.akash.safebrowser.MainActivity">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textWebEmailAddress"
        android:ems="10"
        android:id="@+id/editText"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:hint="Search here." />

    <Button
        android:text="@string/search"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:id="@+id/button"
        android:onClick="search" />
</RelativeLayout>
Browser.xml

  <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_browser"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.amostrone.akash.safebrowser.Browser">

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true" />
</RelativeLayout>

所以我的问题是,当我输入任何文本,如“”或仅输入“www.google.co.in”,一切正常,但当我只输入简单文本,如“stackoverflow”时,应用程序崩溃。它甚至在系统调用按钮“搜索”功能“搜索(查看)”之前崩溃。
请帮助--

问题可能是您正在消息字符串上执行子字符串,但它太短。 例如:

message.substring(0, 11)
这将执行从索引0到11的子字符串,但是如果字符串的长度只有4,会发生什么?会有例外。 您应该将检查提取到一个新方法中,并在调用substring方法之前对字符串进行长度检查

if(message.length() > 10){
  message.substring(0,11);
}

问题可能是您正在消息字符串上执行一个子字符串,但它太短了。 例如:

message.substring(0, 11)
这将执行从索引0到11的子字符串,但是如果字符串的长度只有4,会发生什么?会有例外。 您应该将检查提取到一个新方法中,并在调用substring方法之前对字符串进行长度检查

if(message.length() > 10){
  message.substring(0,11);
}

请帮助我,我在android开发方面不是很有经验,它在哪里以及如何崩溃?有什么例外吗?没有none@wombat当我输入像“google”这样没有http://or的文本时,它崩溃了。我在android开发方面不是很有经验,它在哪里以及如何崩溃?有什么例外吗?没有none@wombat当我输入像“google”这样没有http://or的文本时,它崩溃了。文本的bigginglinght()-从未听说过;-)但在系统调用button的search()函数之前,它仍然会崩溃search@ScaryWombat谢谢你的提示:D我编辑过:Dlenght()-从没听说过;-)但在系统调用button的search()函数之前,它仍然会崩溃search@ScaryWombat谢谢你的提示:D我已经编辑了:D