Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 下载文件时“很遗憾,应用程序已停止”(Android)_Java_Android_Xml_Android Studio - Fatal编程技术网

Java 下载文件时“很遗憾,应用程序已停止”(Android)

Java 下载文件时“很遗憾,应用程序已停止”(Android),java,android,xml,android-studio,Java,Android,Xml,Android Studio,我正在制作一个应用程序,用户必须下载一个文件才能让应用程序工作。 我添加了一个名为“HTTPTest”的新类,用于下载该文件。当我点击按钮下载文件时,它说不幸的是。。。停止 首先,日志如下: Process: com.NautGames.xecta.app, PID: 2759 java.lang.IllegalStateException: Could not find a method onClick(View) in the activity class com.NautGames.xec

我正在制作一个应用程序,用户必须下载一个文件才能让应用程序工作。 我添加了一个名为“HTTPTest”的新类,用于下载该文件。当我点击按钮下载文件时,它说不幸的是。。。停止

首先,日志如下:

Process: com.NautGames.xecta.app, PID: 2759
java.lang.IllegalStateException: Could not find a method onClick(View) in the activity class com.NautGames.xecta.app.MainActivity for onClick handler on view   class android.widget.Button with id 'Button01'
at android.view.View$1.onClick(View.java:3810)
 at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoSuchMethodException: onClick [class android.view.View]
at java.lang.Class.getConstructorOrMethod(Class.java:472)
at java.lang.Class.getMethod(Class.java:857)
at android.view.View$1.onClick(View.java:3803)
    at android.view.View.performClick(View.java:4438)
    at android.view.View$PerformClick.run(View.java:18422)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5017)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
    at dalvik.system.NativeStart.main(Native Method)
以下是HTTPTest类别:

package com.NautGames.xecta.app;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class HTTPTest extends Activity {
String Path = Environment.getExternalStorageDirectory().getPath() + "/Download";
String dwnload_file_path = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc6/187259_10000060421658402_744490318028_q.jpg";
String dest_file_path = Path;
Button b1;
ProgressDialog dialog = null;

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

    b1 = (Button)findViewById(R.id.Button01);
    b1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog = ProgressDialog.show(HTTPTest.this, "", "Downloading file...", true);
            new Thread(new Runnable() {
                public void run() {
                    downloadFile(dwnload_file_path, dest_file_path);
                }
            }).start();
        }
    });
}

public void downloadFile(String url, String dest_file_path) {
    try {
        File dest_file = new File(dest_file_path);
        URL u = new URL(url);
        URLConnection conn = u.openConnection();
        int contentLength = conn.getContentLength();
        DataInputStream stream = new DataInputStream(u.openStream());
        byte[] buffer = new byte[contentLength];
        stream.readFully(buffer);
        stream.close();
        DataOutputStream fos = new DataOutputStream(new FileOutputStream(dest_file));
        fos.write(buffer);
        fos.flush();
        fos.close();
        hideProgressIndicator();

    } catch(FileNotFoundException e) {
        hideProgressIndicator();
        return;
    } catch (IOException e) {
        hideProgressIndicator();
        return;
    }
}

void hideProgressIndicator(){
    runOnUiThread(new Runnable() {
        public void run() {
            dialog.dismiss();
        }
    });
}
}

activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.NautGames.chatbot.app.MainActivity"
android:background="@drawable/oneiric640x960">

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editText1"
    android:hint="Talk to Xecta"
    android:layout_below="@+id/view"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Send"
    android:id="@+id/button1"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/editText1"
    android:onClick="buttonOnClick" />
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="File Download Demo from Coderzheaven \n\nFile to download : http://coderzheaven.com/sample_folder/sample_file.png \n\nSaved Path : sdcard/\n"
    android:id="@+id/textView"
    android:layout_below="@+id/button1"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginTop="31dp" />
<Button
    android:text="Download File"
    android:id="@+id/Button01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true"
    android:onClick="onClick">
</Button>

</RelativeLayout>
请告诉我如何修复此问题,谢谢。

根据


您需要将onClick视图方法添加到MainActivity中

您必须添加onClick。。你的方法activity@adneal是的,这是我的问题,但此问题已用我的不同代码更新。发布activity_main的XML布局。如LogCat所示,您的错误在MainActivity中,并且您已经发布了HTTPTest类。如果希望帮助完成添加文件@panini,请发布主活动
package com.NautGames.xecta.app;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
//Chat bot library
import org.alicebot.ab.Chat;
import org.alicebot.ab.Bot;

import android.view.View;
import android.widget.Button;
import android.os.Environment;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

TextView input;

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

//EditText mEdit = (EditText)findViewById(R.id.editText1);

public void buttonOnClick(View v)
{
    input = (TextView) findViewById(R.id.editText1);

    String dbPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Download/Ab";

    Button button=(Button) v;

    //Creating bot
    String botname="xecta";
    String path= dbPath;
    Bot xecta = new Bot(botname, path);

    Chat chatSession = new Chat(xecta);

    String request = input.getText().toString();
    String response = chatSession.multisentenceRespond(request);
    ((Button) v).setText(response);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}