Intereting Posts
Совместное использование ViewPager между двумя вкладками Как выполнить POST-сырой целый JSON в теле запроса на доработку? NoClassDefFoundError с библиотеками в Android Studio Если нужно создать связь с устройством Bluetooth LE Android Facebook намерение Как центрировать значок и текст в андроидной кнопке с шириной, заданной как «заполнить родительский элемент», Android-приложение вылетает после обфускации proguard Android – КоординаторLayout / NestedScrollView / Скрыть панель инструментов / Проблема с WebView Как установить только числовое значение для edittext в android? Сохранение на SD-карту в виде текстового файла Остановить показ изображений на SD-карте в галерее? Android Studio 2.0 – пауза / белый экран при первом запуске приложения Как подключить Android-устройство к PPTP VPN Не удалось запустить приложение Android в Eclipse; Внутренняя ошибка произошла во время: «Запуск myApp» Android UnsupportedOperationException на Canvas.clipPath

Студия Android getSlotFromBufferLocked: неизвестная ошибка буфера

Я хочу сделать простое приложение для регистрации и регистрации, чтобы пользователь мог создать учетную запись. (Имя, имя пользователя, пароль) Я использую WAMP и базу данных MYSQL, где храню учетные записи.

Когда я заполняю информацию о пользователе в регистрационной форме и регистрирую клик, я получаю следующую ошибку:

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 

Когда я иду проверить базу данных, он не сохранил учетную запись.

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) { } } 

Register.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>"; } ?> 

Solutions Collecting From Web of "Студия Android getSlotFromBufferLocked: неизвестная ошибка буфера"

Я считаю, что это специфический Маршмаллоу. Вы используете устройство Marshmallow?

Я заметил, что эта ошибка печатается каждый раз, когда я переключаюсь между приложениями (неважно, какой) или выйдет из них, и когда действия будут уничтожены.

Я попытался запустить те же приложения на двух Nexus 5s – один работает Lollipop и другой Marshmallow, и эти лог-принты появились только в версии Marshmallow – с каждым приложением, а не только с тем, что я создаю.

Не знаю, почему это происходит, но я открыл отчет здесь .

У меня нет конкретного решения проблемы. Но у меня была схожая проблема. Любой, у кого есть проблемы, как это, пожалуйста, убедитесь, что у вас есть код ниже.

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

Используя интеллект, вы можете выбрать ниже код:

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

Это сработало для меня

Для получения дополнительной информации о PersistentState

Счастливое кодирование 🙂

Я думаю, что вы заканчиваете контекст перед завершением backgrounTask, а Контекст, который вы передаете, больше не существует.
Можешь попробовать:

  • Используйте appContext: новый BackgroundTask (Register.this. GetApplicationContext () );

  • Или, Подождите завершения BackgroundTask: удалите финиш () после .execute (…) и добавьте финиш () onPostExecute

Обновите свою ОС Android до версии 6.0.1.

Это была открытая проблема, найденная здесь . Проблема исправлена ​​в Android 6.0.1, который был опубликован недавно.

Это довольно странно, но в моем случае я получил эту ошибку при попытке загрузки контактов без добавления

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

В манифест. И он исчез только что я это сделал.

Поэтому я предполагаю, что это может быть что-то с новыми разрешениями в Marshmallow.

Протестировано на моем Nexus 5 с Android 6.0 и с targetSdkVersion 23 в build.gradle

Поскольку этот андроид изменил запрос разрешений (некоторые разрешения, такие как android.permission.READ_PHONE_STATE или android.permission.READ_CONTACTS ), когда вы запрашиваете эти разрешения во время выполнения и не добавляете тег разрешения ( <uses-permission android: name = "… "/> ) В манифесте , вы получите сообщение об ошибке.

Поэтому просто используйте разрешения тегов, такие как старые версии, и добавьте разрешение запроса во время выполнения в новых версиях.