Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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 插入数据库异步任务错误_Java_Android_Mysql_Android Asynctask - Fatal编程技术网

Java 插入数据库异步任务错误

Java 插入数据库异步任务错误,java,android,mysql,android-asynctask,Java,Android,Mysql,Android Asynctask,我在电影上制作了一个android应用程序。我有一个电影数据库。在应用程序中,我在ListView中显示电影,并添加一个新电影。 当我试图在数据库中插入一部新电影时出现问题。事实上,我在doInBackground中的AsyncTask中有一个错误,但我不知道为什么。当我使用调试器时,我在doInBackground的开头有一行拒绝: 字符串title=eTitle.getText.toString 所以我给你我的java代码: public class AddMovie extends

我在电影上制作了一个android应用程序。我有一个电影数据库。在应用程序中,我在ListView中显示电影,并添加一个新电影。 当我试图在数据库中插入一部新电影时出现问题。事实上,我在doInBackground中的AsyncTask中有一个错误,但我不知道为什么。当我使用调试器时,我在doInBackground的开头有一行拒绝: 字符串title=eTitle.getText.toString

所以我给你我的java代码:

    public class AddMovie extends Activity implements OnClickListener{

 // Edit and Button that the user fill
  private EditText eTitle, eActors, eDirector, eKind, eDate, eImage, eSummary ;
  private Button bAdd;

  // Progress Dialog
  private ProgressDialog pDialog;

  //JSON parser class
  //JSONParser jsonParser = new JSONParser();
  private static final String TAG_SUCCESS = "success";
  private static final String TAG_MESSAGE = "message";

  @Override
  protected void onCreate(Bundle savedInstanceState) {       
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_movie);      
        eTitle = (EditText)findViewById(R.id.title);
        eActors = (EditText)findViewById(R.id.actors); 
        eDirector = (EditText)findViewById(R.id.director);
        eKind = (EditText)findViewById(R.id.kind);
        eDate = (EditText)findViewById(R.id.date);
        eImage = (EditText)findViewById(R.id.image);
        eSummary = (EditText)findViewById(R.id.summary);
        bAdd = (Button)findViewById(R.id.addMovies);
        bAdd.setOnClickListener(this);
              }
  public void onClick(View v) {
         // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.addMovies:
                    new AttempMovie().execute();
        // here we have used, switch case, because on login activity you may //also want to show registration button, so if the user is new ! we can go the //registration activity , other than this we could also do this without switch //case.
        default:
              break;
        }
  }

  class AttempMovie extends AsyncTask<String, String, String> {
         /**
     * Before starting background thread Show Progress Dialog
     * */
        boolean failure = false;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(AddMovie.this);
        pDialog.setMessage("Attempting for add new movie...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

        @Override
        protected String doInBackground(String... args) {
              // TODO Auto-generated method stub
               // here Check for success tag
        int success;
        String title = eTitle.getText().toString();
        String actors = eActors.getText().toString();
        String director = eDirector.getText().toString();
        String kind = eKind.getText().toString();
        String date = eDate.getText().toString();
        String image = eImage.getText().toString();
        String summary = eSummary.getText().toString();
        try {
            // Building parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("title", title));
            params.add(new BasicNameValuePair("actors", actors));
            params.add(new BasicNameValuePair("director", director));
            params.add(new BasicNameValuePair("kind", kind));
            params.add(new BasicNameValuePair("date", date));
            params.add(new BasicNameValuePair("image", image));
            params.add(new BasicNameValuePair("summary", summary));

            Log.d("request!", "starting");

            JSONObject json = JSONfunctions.getJSONfromURL("http://10.0.0.35/BD_Enterprise_Mobility_Movies/add_movie.php");

            // checking  log for json response
            Log.d("Register attempt", json.toString());

            // success tag for json
            success = json.getInt(TAG_SUCCESS);
            if (success == 1) 
            {
              Log.d("Successfully Register!", json.toString());
              return json.getString(TAG_MESSAGE);
            }
            else
            {
              Log.d("Login Failure!", json.getString(TAG_MESSAGE));
              return json.getString(TAG_MESSAGE);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
        }
        /**
     * Once the background process is done we need to  Dismiss the progress dialog asap
     * **/
    protected void onPostExecute(String message) {

        pDialog.dismiss();
        if (message != null){
            Intent i = new Intent(AddMovie.this,MainActivity.class);
            finish();
            // this finish() method is used to tell android os that we are done with current //activity now! Moving to other activity
            startActivity(i);
            Toast.makeText(AddMovie.this, message, Toast.LENGTH_LONG).show();
        }
    }
  } 
}
以及我在日志中的错误:

     03-20 18:28:19.753: E/AndroidRuntime(14656): FATAL EXCEPTION: AsyncTask #3
03-20 18:28:19.753: E/AndroidRuntime(14656): Process: com.mickKoza.jsonkoza, PID: 14656
03-20 18:28:19.753: E/AndroidRuntime(14656): java.lang.RuntimeException: An error occured while executing doInBackground()
03-20 18:28:19.753: E/AndroidRuntime(14656):    at android.os.AsyncTask$3.done(AsyncTask.java:300)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at java.lang.Thread.run(Thread.java:818)
03-20 18:28:19.753: E/AndroidRuntime(14656): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
03-20 18:28:19.753: E/AndroidRuntime(14656):    at com.mickKoza.jsonkoza.AddMovie$AttempMovie.doInBackground(AddMovie.java:81)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at com.mickKoza.jsonkoza.AddMovie$AttempMovie.doInBackground(AddMovie.java:1)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
03-20 18:28:19.753: E/AndroidRuntime(14656):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-20 18:28:19.753: E/AndroidRuntime(14656):    ... 4 more
03-20 18:28:20.184: E/WindowManager(14656): android.view.WindowLeaked: Activity com.mickKoza.jsonkoza.AddMovie has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{3e1b7378 V.E..... R......D 0,0-1026,288} that was originally added here
03-20 18:28:20.184: E/WindowManager(14656):     at android.view.ViewRootImpl.<init>(ViewRootImpl.java:363)
03-20 18:28:20.184: E/WindowManager(14656):     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:261)
03-20 18:28:20.184: E/WindowManager(14656):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
03-20 18:28:20.184: E/WindowManager(14656):     at android.app.Dialog.show(Dialog.java:298)
03-20 18:28:20.184: E/WindowManager(14656):     at com.mickKoza.jsonkoza.AddMovie$AttempMovie.onPreExecute(AddMovie.java:74)
03-20 18:28:20.184: E/WindowManager(14656):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
03-20 18:28:20.184: E/WindowManager(14656):     at android.os.AsyncTask.execute(AsyncTask.java:535)
03-20 18:28:20.184: E/WindowManager(14656):     at com.mickKoza.jsonkoza.AddMovie.onClick(AddMovie.java:54)
03-20 18:28:20.184: E/WindowManager(14656):     at android.view.View.performClick(View.java:4756)
03-20 18:28:20.184: E/WindowManager(14656):     at android.view.View$PerformClick.run(View.java:19749)
03-20 18:28:20.184: E/WindowManager(14656):     at android.os.Handler.handleCallback(Handler.java:739)
03-20 18:28:20.184: E/WindowManager(14656):     at android.os.Handler.dispatchMessage(Handler.java:95)
03-20 18:28:20.184: E/WindowManager(14656):     at android.os.Looper.loop(Looper.java:135)
03-20 18:28:20.184: E/WindowManager(14656):     at android.app.ActivityThread.main(ActivityThread.java:5221)
03-20 18:28:20.184: E/WindowManager(14656):     at java.lang.reflect.Method.invoke(Native Method)
03-20 18:28:20.184: E/WindowManager(14656):     at java.lang.reflect.Method.invoke(Method.java:372)
03-20 18:28:20.184: E/WindowManager(14656):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
03-20 18:28:20.184: E/WindowManager(14656):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
谢谢你的帮助


Michaël

这些视图中的一个或可能所有视图都为空:

String title = eTitle.getText().toString();
String actors = eActors.getText().toString();
String director = eDirector.getText().toString();
String kind = eKind.getText().toString();
String date = eDate.getText().toString();
String image = eImage.getText().toString();
String summary = eSummary.getText().toString();

您在onCreate期间为查找这些视图而引用的视图ID可能不正确?

看起来eTitle为空。您是否从其他班级调用此任务?另外,您正在泄漏一个窗口,这意味着您试图在活动不在前台时显示对话框。对不起,我发现它是我的xml id。很抱歉让你在我愚蠢的问题上浪费时间。我所有的道歉都不需要了。不管怎样,我没有做太多其他事情:P这些事情发生了,不用担心
String title = eTitle.getText().toString();
String actors = eActors.getText().toString();
String director = eDirector.getText().toString();
String kind = eKind.getText().toString();
String date = eDate.getText().toString();
String image = eImage.getText().toString();
String summary = eSummary.getText().toString();