Autore Topic: Salvataggio in database remoto  (Letto 383 volte)

Offline supernio

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Mac OS X 10.8
Salvataggio in database remoto
« il: 14 Aprile 2013, 23:56:52 CEST »
0
Salve ho un piccolo problema che non riesco a risolvere, dovrei salvare il contenuto di alcune variabili nel mio database sito su altervista.
Ricevo vari errori nel logcat che non riesco a risolvere anche perchè è da poco che mi occupo di programmazione Android, quindi scusatemi.
Questo il file php :
Codice: [Seleziona]
<?
$json_a = json_decode(($_POST['pippo']));
echo($json_a);
$Linea = $decoded['Linea'];
$Tratta = $decoded['Tratta'];
$Ora = $decoded['Ora'];
$Gps = $decoded['Gps'];
echo $Linea;
echo $Tratta;
echo $Ora;
echo $Gps;
$conn = mysql_connect('#####', '#####', '#####');
mysql_select_db('#####',$conn);
if (!$conn) {
    die('Could not connect: ' . mysql_error());
}
$risultato = @mysql_query("INSERT INTO Apmservice(Linea,Tratta,Ora,Gps) VALUES ('$Linea', '$Tratta','$Ora','$Gps')") or die('Errore: ' .mysql_error());

?>

Questa è parte della classe Inserisci:
Codice: [Seleziona]
public class Inserisci extends ExpandableListActivity implements
  OnChildClickListener {
        String temp;
    String jsonText;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ExpandableListView expandbleLis = getExpandableListView();
  expandbleLis.setDividerHeight(2);
  expandbleLis.setGroupIndicator(null);
  expandbleLis.setClickable(true);

  setGroupData();
  setChildGroupData();

  NewAdapter mNewAdapter = new NewAdapter(groupItem, childItem);
  mNewAdapter
    .setInflater(
      (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE),
      this);
  getExpandableListView().setAdapter(mNewAdapter);
  expandbleLis.setOnChildClickListener(this);
 
  JSONObject j = new JSONObject();
 
  try {
          j.put("Linea", "test");
          j.put("Tratta", "test");
          j.put("Ora", "test");
          j.put("Gps", 10);
                                                                         
  }catch(JSONException e){
          e.printStackTrace();
  }
  try {
          String url = "http://apmservice.altervista.org/inserimento.php";
          Map<String, String> kvPairs = new HashMap<String, String>();
          kvPairs.put("pippo", j.toString());
          HttpResponse re = HTTPPoster.doPost(url, kvPairs);
          temp = EntityUtils.toString(re.getEntity());
  } catch(ClientProtocolException e){
          e.printStackTrace();
  }
  catch(IOException e){
          e.printStackTrace();
  }       

  if (temp.compareTo("SUCCESS")== 0) {
          Toast.makeText(Inserisci.this, "Sending complete!", Toast.LENGTH_LONG).show();
  }else{
          Toast.makeText(Inserisci.this, "Sending incomplete!", Toast.LENGTH_LONG).show();
  }
 
 }

 public void setGroupData() {
  groupItem.add("Linea A");
  groupItem.add("Linea B");
.
.
.
.
.

Questo è il logcat :
Codice: [Seleziona]
04-14 23:55:08.081: E/AndroidRuntime(12284): FATAL EXCEPTION: main
04-14 23:55:08.081: E/AndroidRuntime(12284): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.apmservice/com.apmservice.Inserisci}: android.os.NetworkOnMainThreadException
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.app.ActivityThread.access$700(ActivityThread.java:140)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.os.Handler.dispatchMessage(Handler.java:99)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.os.Looper.loop(Looper.java:137)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.app.ActivityThread.main(ActivityThread.java:4921)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at java.lang.reflect.Method.invokeNative(Native Method)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at java.lang.reflect.Method.invoke(Method.java:511)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at dalvik.system.NativeStart.main(Native Method)
04-14 23:55:08.081: E/AndroidRuntime(12284): Caused by: android.os.NetworkOnMainThreadException
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at java.net.InetAddress.getAllByName(InetAddress.java:214)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at com.apmservice.HTTPPoster.doPost(HTTPPoster.java:35)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at com.apmservice.Inserisci.onCreate(Inserisci.java:63)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.app.Activity.performCreate(Activity.java:5206)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
04-14 23:55:08.081: E/AndroidRuntime(12284):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
04-14 23:55:08.081: E/AndroidRuntime(12284):         ... 11 more

Scusatemi ragazzi ma non riesco a capire perchè non và.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Salvataggio in database remoto
« Risposta #1 il: 15 Aprile 2013, 07:51:09 CEST »
0
Citazione
04-14 23:55:08.081: E/AndroidRuntime(12284): Caused by: android.os.NetworkOnMainThreadException

NetworkOnMainThreadException : non devi mai eseguire operazioni di accesso alla rete nel main thread (cioè nel thread della UI, inclusa la OnCreate), ma farle in un Thread/AsyncTask dedicato.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline supernio

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Mac OS X 10.8
Re:Salvataggio in database remoto
« Risposta #2 il: 15 Aprile 2013, 10:46:47 CEST »
0
Grazie Risolto.
« Ultima modifica: 15 Aprile 2013, 17:19:09 CEST da supernio »