Android Studio getSlotFromBufferLocked: unbekannter Pufferfehler

Ich möchte eine einfache Anmeldung und Registrierung App, so dass der Benutzer ein Konto erstellen können. (Name, Benutzername, Passwort) Ich verwende WAMP und eine MYSQL Datenbank, wo ich die Konten speichere.

Wenn ich die Benutzerinfos auf dem Anmeldeformular ausfüll und Klick registriere ich den folgenden Fehler:

09-14 09:30:39.864 2624-2638/com.example.appname.appname E/Surface﹕ getSlotFromBufferLocked: unknown buffer: 0xab7115e0 09-14 09:30:48.632 2624-2638/com.example.appname.appname E/Surface﹕ getSlotFromBufferLocked: unknown buffer: 0xab7125a0 09-14 09:30:51.940 2624-2638/com.example.appname.appname E/Surface﹕ getSlotFromBufferLocked: unknown buffer: 0xab7125a0 

Wenn ich gehe, überprüfen Sie die Datenbank hat es nicht das Konto gespeichert.

MainActivity.java

 import android.app.Activity; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void userReg(View v) { startActivity(new Intent(this, Register.class)); } public void userLogin(View view) { } } 

Registrieren.java

 import android.app.Activity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.EditText; public class Register extends Activity { EditText ET_NAME,ET_USER_NAME,ET_USER_PASS; String name,user_name,user_pass; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.register_layout); ET_NAME = (EditText) findViewById(R.id.name); ET_USER_NAME = (EditText) findViewById(R.id.new_user_name); ET_USER_PASS = (EditText) findViewById(R.id.new_user_pass); } public void userReg(View view) { name = ET_NAME.getText().toString(); user_name = ET_USER_NAME.getText().toString(); user_pass = ET_USER_PASS.getText().toString(); String method = "register"; BackgroundTask backgroundTask = new BackgroundTask(Register.this); backgroundTask.execute(method,name,user_name,user_pass); finish(); } } 

Backgroundtask.java

 import android.app.AlertDialog; import android.content.Context; import android.os.AsyncTask; import android.widget.Toast; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; public class BackgroundTask extends AsyncTask<String, Void, String> { AlertDialog alertDialog; Context ctx; BackgroundTask(Context ctx) { this.ctx = ctx; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... params) { String reg_url = "http://10.0.2.2.2/webapp/register.php"; String login_url = "http://10.0.2.2.2/webapp/login.php"; String method = params[0]; if (method.equals("register")) { String name = params[1]; String user_name = params[2]; String user_pass = params[3]; try { URL url = new URL(reg_url); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoOutput(true); OutputStream OS = httpURLConnection.getOutputStream(); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8")); String data = URLEncoder.encode("user", "UTF-8") + "=" + URLEncoder.encode(name, "UTF-8") + "&" + URLEncoder.encode("user_name", "UTF-8") + "=" + URLEncoder.encode(user_name, "UTF-8") + "&" + URLEncoder.encode("user_pass", "UTF-8") + "=" + URLEncoder.encode(user_pass, "UTF-8"); bufferedWriter.write(data); bufferedWriter.flush(); bufferedWriter.close(); OS.close(); InputStream IS = httpURLConnection.getInputStream(); IS.close(); return "Registration Success..."; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } return null; } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } @Override protected void onPostExecute(String result) { Toast.makeText(ctx, result, Toast.LENGTH_LONG).show(); } } 

Register.php

 <?php require "init.php"; $name = $_POST["user"]; $user_name = $_POST["user_name"]; $user_pass = $_POST["user_pass"]; $sql_query = "insert into user_info values('$name','$user_name','$user_pass');"; if(mysqli_query($con,$sql_query)) { //echo"<h3> Data insertion success...</h3>"; } else{ //echo "Data insertion error..".mysqli_error($con); } ?> 

Init.php

 <?php $db_name="myDBname"; $mysql_user = "root"; $mysql_pass = "root"; $server_name="localhost"; $con = mysqli_connect($server_name,$mysql_user,$mysql_pass,$db_name); if(!$con) { //echo"Connection Error".mysqli_connect_error(); } else { //echo"<h3> Database connection success.....</h3>"; } ?> 

  • Das gleiche Element wird nach dem Ausführen von Network Call in einer Schleife zweimal gelöscht
  • Können zwei verschiedene Geräte die gleiche GCM-Registrierungs-ID haben?
  • Android: Wird JDBC in Android-Geräten unterstützt?
  • Synchronisierungsdatenbanken Mysql SQLite
  • Wie kann man Android App mit MySQL Datenbank verbinden?
  • Wie kann man Tabs (Whitespace) aus der MySQL-Datenbank korrekt auf Android und IOS App anzeigen?
  • Android - Verbinden mit MySQL-Datenbank
  • Berechnen Sie 100 Meter Entfernung, wenn der Breiten- und Längengrad ein bekannter Punkt ist
  • 6 Solutions collect form web for “Android Studio getSlotFromBufferLocked: unbekannter Pufferfehler”

    Ich glaube, das ist Marshmallow spezifisch. Bist du ein Marshmallow-Gerät?

    Ich habe bemerkt, dass dieser Fehler jedes Mal ausgedruckt wird, wenn ich zwischen den Anwendungen umschalte (egal was) oder aus ihnen herausgeht und wenn Aktivitäten zerstört werden.

    Ich habe versucht, die gleichen Apps auf zwei Nexus 5s zu laufen – ein Lollipop und der andere Marshmallow, und diese Log-Drucke erschienen nur auf der Marshmallow-Version – mit jeder App, nicht nur die, die ich baue.

    Nicht sicher, warum das passiert, aber ich habe hier einen Bericht eröffnet.

    Ich habe keine spezifische Problemlösung. Aber ich hatte ein ähnliches Problem. Jeder, der ein Problem wie dieses hat, bitte stellen Sie sicher, dass Sie unter Code haben.

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

    Durch die Verwendung von Intelligenz haben Sie vielleicht unter Code:

     @Override public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { super.onCreate(savedInstanceState, persistentState); setContentView(R.layout.<YOUR_XML_FILE_NAME>); } 

    Das hat für mich gearbeitet

    Für weitere Informationen über PersistentState

    Glückliche Kodierung 🙂

    Ich glaube, Sie beenden den Kontext vor backgrounTask beenden, und Kontext, den Sie nicht mehr existieren.
    Du kannst es versuchen:

    • Verwenden Sie appContext: new BackgroundTask (Register.this. GetApplicationContext () );

    • Oder, warte auf BackgroundTask-Finish: Finde Finish () nach .execute (…) und füge Finish () onPostExecute hinzu

    Aktualisieren Sie Ihr Android-Betriebssystem auf 6.0.1.

    Dies war eine offene Frage hier . Das Problem ist in Android 6.0.1 behoben, das vor kurzem öffentlich veröffentlicht wurde.

    Es ist ziemlich seltsam, aber in meinem Fall bekam ich diesen Fehler beim Versuchen, Kontakte ohne Hinzufügen zu laden

    <uses-permission android:name="android.permission.READ_CONTACTS" />

    In manifestieren Und es ist verschwunden, nur ich habe es getan.

    Also meine Vermutung, dass es etwas mit neuen Berechtigungen in Marshmallow sein könnte.

    Getestet auf meinem Nexus 5 mit Android 6.0 und mit targetSdkVersion 23 in build.gradle

    Da diese Androide die Berechtigungsanforderung geändert hat (einige Berechtigungen wie android.permission.READ_PHONE_STATE oder android.permission.READ_CONTACTS ), wenn Sie diese Berechtigungen zur Laufzeit anfordern und nicht die Berechtigungsmarke hinzufügen ( <use-permission android: name = "… "/> ) Im Manifest , bekommst du den Fehler.

    Verwenden Sie also nur Tag-Berechtigungen wie alte Versionen und fügen Sie die Anforderungsberechtigung zur Laufzeit in neueren Versionen hinzu.

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.