2016-01-12 3 views
0

Это похоже на app crashes on JSON jparser make http requestПодключение базы данных MySQL для андроид приложение

После того как я сделал приложение, я заменил строки URL с

private static String url_all_products = "http://192.168.0.101:80/android_connect/get_all_products.php"; 

Когда я запускаю выше URL в браузере, я получите сообщение о том, что метод был разграблен, за которым следует объект JSON (я вручную вставил строку)

Однако, когда я запускаю приложение на своем устройстве, он падает после нажатия кнопки продуктов вида

01-12 23:39:10.508 3681-3789/com.example.androidhive E/JSON Parser: Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject 01-12 23:39:10.510 3681-3789/com.example.androidhive E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #5 
Process: com.example.androidhive, PID: 3681 
java.lang.RuntimeException: An error occured while executing doInBackground() 
    at android.os.AsyncTask$3.done(AsyncTask.java:304) 
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
    at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
    at java.lang.Thread.run(Thread.java:818) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.json.JSONObject.toString()' on a null object reference 
    at com.example.androidhive.AllProductsActivity$LoadAllProducts.doInBackground(AllProductsActivity.java:130) 
    at com.example.androidhive.AllProductsActivity$LoadAllProducts.doInBackground(AllProductsActivity.java:105) 
    at android.os.AsyncTask$2.call(AsyncTask.java:292) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)  
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)  
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)  
    at java.lang.Thread.run(Thread.java:818)  01-12 23:39:10.510 3681-3681/com.example.androidhive D/AbstractTracker: Event success 01-12 23:39:10.511 3681-3789/com.example.androidhive E/AndroidRuntime: Error reporting crash 
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 
    at android.os.Handler.<init>(Handler.java:200) 
    at android.os.Handler.<init>(Handler.java:114) 
    at android.content.AsyncQueryHandler.<init>(AsyncQueryHandler.java:125) 
    at net.oneplus.odm.insight.tracker.AbstractTracker$TrackerAsyncQueryHandler.<init>(AbstractTracker.java:108) 
    at net.oneplus.odm.insight.tracker.AbstractTracker.<init>(AbstractTracker.java:60) 
    at net.oneplus.odm.insight.tracker.AppTracker.<init>(AppTracker.java:24) 
    at 

    com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:97) 
     at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693) 
     at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690) 01-12 23:39:10.511 3681-3789/com.example.androidhive I/Process: Sending signal. PID: 3681 SIG: 9 

NullPointerException заставляет меня поверить, что объект JSON не возвращается, но я могу увидеть объект JSON, когда я запускаю url на своем компьютере.

+0

Если вы получаете сообщение JSON _plus_ об ошибке (которое, я думаю, вы говорите, что вы получаете из браузера), то это не будет анализироваться как действительный JSON и поэтому будет генерировать исключение. Устраните ошибку устаревания и посмотрите, все ли вы получаете исключение. –

ответ

1

Вы используете устаревший php-код и генерируете таблицу внутри вашей страницы браузера, говоря, что она устарела, и когда вы анализируете эту страницу со «таблицей», это означает, что вы получаете не только содержимое json, но и html-таблицы и который не может быть проанализирован для json, поэтому вы получаете исключение. Я предлагаю следующее: w3schools tutorial о том, как подключиться к mysql с не устаревшим кодом.

+0

Спасибо, я попробую! – rhari

+0

Добро пожаловать. – SaNtoRiaN

+0

Да, это сработало отлично. – rhari

Смежные вопросы