PDA

View Full Version : مشکل در ثبت داده جدید در دیتابیس با JSON



barnamenevisjavan
جمعه 28 آذر 1393, 10:21 صبح
سلام من یه برنامه نوشتم که کاربر یکسری اطلاعات رو باهاش ثبت میکنه و داخل دیتابیس تحت وب ذخیره میشه،همه چی صحیح و بدون مشکل کار میکنه ولی وقتی اطلاعات کاربر روی ثبت کلیک میکنه اطلاعات داخل دیتابیس ثبت میشن یهو برنامه Unfortantly Stoped میشه.اطلاعات بدون مشکل تو دیتابیس ذخیره میشه ولی نمیدونم برنامه چرا بسته میشه

package ir.BNJ.linevip;


import java.util.ArrayList;
import java.util.List;


import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;


import android.support.v7.app.ActionBarActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class AddLink extends ActionBarActivity {


private ProgressDialog pDialog;


JSONParser jsonParser = new JSONParser();
EditText inputName;
EditText inputLoc;
EditText inputPrice;
EditText inputProblem;
// url to create new product
private static String url_create_product = "http://XXX/create_product.php";


// JSON Node names
private static final String TAG_SUCCESS = "success";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_link);
// Edit Text
inputName = (EditText) findViewById(R.id.edtname);
inputLoc = (EditText) findViewById(R.id.edtloc);
inputPrice = (EditText) findViewById(R.id.edtprice);
inputProblem = (EditText) findViewById(R.id.edtproblem);

Button btncreatelink = (Button) findViewById(R.id.submit);
btncreatelink.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
new CreateNewProduct().execute();
}
});
}
/**
* Background Async Task to Create new product
* */
class CreateNewProduct extends AsyncTask<String, String, String> {


/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(AddLink.this);
pDialog.setMessage("Creating Product..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
/**
* Creating product
* */
protected String doInBackground(String... args) {
String name = inputName.getText().toString();
String loc = inputLoc.getText().toString();
String price = inputPrice.getText().toString();
String problem = inputProblem.getText().toString();

// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("subject", name));
params.add(new BasicNameValuePair("status", loc));
params.add(new BasicNameValuePair("code", price));
params.add(new BasicNameValuePair("problem", problem));
// getting JSON Object
// Note that create product url accepts POST method
JSONObject json = jsonParser.makeHttpRequest(url_create_product,
"POST", params);

// check log cat fro response
Log.d("Create Response", json.toString());
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once done
pDialog.dismiss();
}


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.add_link, 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);
}
}




LogCat



12-19 01:30:04.433: D/dalvikvm(2492): GC_FOR_ALLOC freed 759K, 14% free 5888K/6808K, paused 93ms, total 136ms
12-19 01:30:04.503: I/dalvikvm-heap(2492): Grow heap (frag case) to 6.975MB for 1127536-byte allocation
12-19 01:30:04.713: D/dalvikvm(2492): GC_FOR_ALLOC freed 100K, 13% free 6889K/7912K, paused 77ms, total 78ms
12-19 01:30:05.294: I/Choreographer(2492): Skipped 38 frames! The application may be doing too much work on its main thread.
12-19 01:30:06.594: I/Choreographer(2492): Skipped 69 frames! The application may be doing too much work on its main thread.
12-19 01:30:08.883: E/JSON Parser(2492): Error parsing data org.json.JSONException: Value <meta of type java.lang.String cannot be converted to JSONObject
12-19 01:30:08.883: W/dalvikvm(2492): threadid=15: thread exiting with uncaught exception (group=0x41465700)
12-19 01:30:08.953: E/AndroidRuntime(2492): FATAL EXCEPTION: AsyncTask #3
12-19 01:30:08.953: E/AndroidRuntime(2492): java.lang.RuntimeException: An error occured while executing doInBackground()
12-19 01:30:08.953: E/AndroidRuntime(2492): at android.os.AsyncTask$3.done(AsyncTask.java:299)
12-19 01:30:08.953: E/AndroidRuntime(2492): at java.util.concurrent.FutureTask.finishCompletion(F utureTask.java:352)
12-19 01:30:08.953: E/AndroidRuntime(2492): at java.util.concurrent.FutureTask.setException(Futur eTask.java:219)
12-19 01:30:08.953: E/AndroidRuntime(2492): at java.util.concurrent.FutureTask.run(FutureTask.jav a:239)
12-19 01:30:08.953: E/AndroidRuntime(2492): at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1080)
12-19 01:30:08.953: E/AndroidRuntime(2492): at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:573)
12-19 01:30:08.953: E/AndroidRuntime(2492): at java.lang.Thread.run(Thread.java:841)
12-19 01:30:08.953: E/AndroidRuntime(2492): Caused by: java.lang.NullPointerException
12-19 01:30:08.953: E/AndroidRuntime(2492): at ir.BNJ.linevip.AddLink$CreateNewProduct.doInBackgr ound(AddLink.java:96)
12-19 01:30:08.953: E/AndroidRuntime(2492): at ir.BNJ.linevip.AddLink$CreateNewProduct.doInBackgr ound(AddLink.java:1)
12-19 01:30:08.953: E/AndroidRuntime(2492): at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-19 01:30:08.953: E/AndroidRuntime(2492): at java.util.concurrent.FutureTask.run(FutureTask.jav a:234)
12-19 01:30:08.953: E/AndroidRuntime(2492): ... 3 more
12-19 01:30:10.023: I/Choreographer(2492): Skipped 56 frames! The application may be doing too much work on its main thread.
12-19 01:30:10.824: E/WindowManager(2492): Activity ir.BNJ.linevip.AddLink has leaked window com.android.internal.policy.impl.PhoneWindow$Decor View{41ad58f0 V.E..... R.....ID 0,0-684,192} that was originally added here
12-19 01:30:10.824: E/WindowManager(2492): android.view.WindowLeaked: Activity ir.BNJ.linevip.AddLink has leaked window com.android.internal.policy.impl.PhoneWindow$Decor View{41ad58f0 V.E..... R.....ID 0,0-684,192} that was originally added here
12-19 01:30:10.824: E/WindowManager(2492): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
12-19 01:30:10.824: E/WindowManager(2492): at android.view.WindowManagerGlobal.addView(WindowMan agerGlobal.java:239)
12-19 01:30:10.824: E/WindowManager(2492): at android.view.WindowManagerImpl.addView(WindowManag erImpl.java:69)
12-19 01:30:10.824: E/WindowManager(2492): at android.app.Dialog.show(Dialog.java:281)
12-19 01:30:10.824: E/WindowManager(2492): at ir.BNJ.linevip.AddLink$CreateNewProduct.onPreExecu te(AddLink.java:73)
12-19 01:30:10.824: E/WindowManager(2492): at android.os.AsyncTask.executeOnExecutor(AsyncTask.j ava:586)
12-19 01:30:10.824: E/WindowManager(2492): at android.os.AsyncTask.execute(AsyncTask.java:534)
12-19 01:30:10.824: E/WindowManager(2492): at ir.BNJ.linevip.AddLink$1.onClick(AddLink.java:54)
12-19 01:30:10.824: E/WindowManager(2492): at android.view.View.performClick(View.java:4240)
12-19 01:30:10.824: E/WindowManager(2492): at android.view.View$PerformClick.run(View.java:17721 )
12-19 01:30:10.824: E/WindowManager(2492): at android.os.Handler.handleCallback(Handler.java:730 )
12-19 01:30:10.824: E/WindowManager(2492): at android.os.Handler.dispatchMessage(Handler.java:92 )
12-19 01:30:10.824: E/WindowManager(2492): at android.os.Looper.loop(Looper.java:137)
12-19 01:30:10.824: E/WindowManager(2492): at android.app.ActivityThread.main(ActivityThread.jav a:5103)
12-19 01:30:10.824: E/WindowManager(2492): at java.lang.reflect.Method.invokeNative(Native Method)
12-19 01:30:10.824: E/WindowManager(2492): at java.lang.reflect.Method.invoke(Method.java:525)
12-19 01:30:10.824: E/WindowManager(2492): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:737)
12-19 01:30:10.824: E/WindowManager(2492): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:553)
12-19 01:30:10.824: E/WindowManager(2492): at dalvik.system.NativeStart.main(Native Method)
12-19 01:30:13.764: I/Process(2492): Sending signal. PID: 2492 SIG: 9
12-19 01:30:17.353: D/dalvikvm(2573): GC_FOR_ALLOC freed 73K, 8% free 2688K/2920K, paused 38ms, total 42ms
12-19 01:30:17.363: I/dalvikvm-heap(2573): Grow heap (frag case) to 3.386MB for 640016-byte allocation
12-19 01:30:17.413: D/dalvikvm(2573): GC_FOR_ALLOC freed 3K, 7% free 3310K/3548K, paused 44ms, total 44ms
12-19 01:30:17.463: D/dalvikvm(2573): GC_FOR_ALLOC freed <1K, 7% free 3310K/3548K, paused 24ms, total 25ms
12-19 01:30:17.493: I/dalvikvm-heap(2573): Grow heap (frag case) to 5.824MB for 2560016-byte allocation
12-19 01:30:17.543: D/dalvikvm(2573): GC_FOR_ALLOC freed <1K, 4% free 5810K/6052K, paused 48ms, total 48ms
12-19 01:30:17.964: D/gralloc_goldfish(2573): Emulator without GPU emulation detected.

smemamian
جمعه 28 آذر 1393, 11:59 صبح
سلام ارسال اطلاعات به سرور به این روش دیگه استفاده نمیشه. از کتابخانه استاندارد Volley استفاده کنید.

barnamenevisjavan
جمعه 28 آذر 1393, 12:41 عصر
سلام ارسال اطلاعات به سرور به این روش دیگه استفاده نمیشه. از کتابخانه استاندارد Volley استفاده کنید.
تشکر ولی دیگه مشکله کل پروژه رو بیسش رو تغییر بدم