我试图在我的开发电脑上运行这个项目。 但是当我尝试注册一个新用户时,这是我被logcat抛出的错误(附件是会话的logcat错误日志)
这是我正在关注的教程,
http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/
11-03 11:56:24.685: D/dalvikvm(2279): GC_FOR_ALLOC freed 206K, 9% free 3763K/4096K, paused 2ms, total 6ms
11-03 11:56:24.925: E/JSON(2279): <br />
11-03 11:56:24.925: E/JSON(2279): <font size='1'><table class='xdebug-error xe-deprecated' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
11-03 11:56:24.925: E/JSON(2279): <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\ah_login_api\include\DB_Connect.php on line <i>18</i></th></tr>
11-03 11:56:24.925: E/JSON(2279): <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
11-03 11:56:24.925: E/JSON(2279): <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
11-03 11:56:24.925: E/JSON(2279): <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0010</td><td bgcolor='#eeeeec' align='right'>252816</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\wamp\www\ah_login_api\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>0</td></tr>
11-03 11:56:24.925: E/JSON(2279): <tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0010</td><td bgcolor='#eeeeec' align='right'>276616</td><td bgcolor='#eeeeec'>DB_Functions->__construct( )</td><td title='C:\wamp\www\ah_login_api\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>19</td></tr>
11-03 11:56:24.925: E/JSON(2279): <tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0010</td><td bgcolor='#eeeeec' align='right'>282712</td><td bgcolor='#eeeeec'>DB_Connect->connect( )</td><td title='C:\wamp\www\ah_login_api\include\DB_Functions.php' bgcolor='#eeeeec'>..\DB_Functions.php<b>:</b>13</td></tr>
11-03 11:56:24.925: E/JSON(2279): <tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.0010</td><td bgcolor='#eeeeec' align='right'>283528</td><td bgcolor='#eeeeec'><a href='http://www.php.net/function.mysql-connect' target='_new'>mysql_connect</a>
11-03 11:56:24.925: E/JSON(2279): ( )</td><td title='C:\wamp\www\ah_login_api\include\DB_Connect.php' bgcolor='#eeeeec'>..\DB_Connect.php<b>:</b>18</td></tr>
11-03 11:56:24.925: E/JSON(2279): </table></font>
11-03 11:56:24.925: E/JSON(2279): {"tag":"register","success":1,"error":0,"uid":"5457b44f108d33.70669064","user":{"name":"fdgdf","email":"dfgfd@gmail.com","created_at":"2014-11-04 00:58:55","updated_at":null}}
11-03 11:56:24.925: E/JSON Parser(2279): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
11-03 11:56:24.935: D/AndroidRuntime(2279): Shutting down VM
11-03 11:56:24.935: W/dalvikvm(2279): threadid=1: thread exiting with uncaught exception (group=0xb2d12b20)
11-03 11:56:24.935: E/AndroidRuntime(2279): FATAL EXCEPTION: main
11-03 11:56:24.935: E/AndroidRuntime(2279): Process: com.example.androidhive, PID: 2279
11-03 11:56:24.935: E/AndroidRuntime(2279): java.lang.NullPointerException
11-03 11:56:24.935: E/AndroidRuntime(2279): at com.example.androidhive.RegisterActivity$1.onClick(RegisterActivity.java:66)
11-03 11:56:24.935: E/AndroidRuntime(2279): at android.view.View.performClick(View.java:4438)
11-03 11:56:24.935: E/AndroidRuntime(2279): at android.view.View$PerformClick.run(View.java:18422)
11-03 11:56:24.935: E/AndroidRuntime(2279): at android.os.Handler.handleCallback(Handler.java:733)
11-03 11:56:24.935: E/AndroidRuntime(2279): at android.os.Handler.dispatchMessage(Handler.java:95)
11-03 11:56:24.935: E/AndroidRuntime(2279): at android.os.Looper.loop(Looper.java:136)
11-03 11:56:24.935: E/AndroidRuntime(2279): at android.app.ActivityThread.main(ActivityThread.java:5017)
11-03 11:56:24.935: E/AndroidRuntime(2279): at java.lang.reflect.Method.invokeNative(Native Method)
11-03 11:56:24.935: E/AndroidRuntime(2279): at java.lang.reflect.Method.invoke(Method.java:515)
11-03 11:56:24.935: E/AndroidRuntime(2279): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
11-03 11:56:24.935: E/AndroidRuntime(2279): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
11-03 11:56:24.935: E/AndroidRuntime(2279): at dalvik.system.NativeStart.main(Native Method)
我错过了什么?顺便说一句,我已经创建了所有必要的数据库并输入了用户和密码。 只是在我试图访问我从上面的网站通过localhost下载的index.php时添加它,它说网页不可用,虽然我认为它只是作为JSON的起点而不是实际的索引如果我错了,请纠正我。
答案 0 :(得分:1)
由于输入格式错误,您的JSONObject.getJSONObject(String)来电会引发JSONException。
使用JSONObject.optJSONObject(String)应该返回null而不是失败。然后,您可以将null值作为特殊情况处理。这比当前的行为更可取,因为应用程序应尽可能保持对输入错误的安静,并且应该不失败。
想象一下,在一个拥有专属门户网站的网络上,要求用户登录或同意条款。由于输入格式错误,这样的示例会使您的应用在当前状态下崩溃。
来自任何不受信任来源的无效数据(包括共享存储上的任何文件,或通过几乎所有网络连接传输的数据)都被认为是预期的,并且不应该在检测到高于DEBUG的级别时触发任何日志记录无效(即使那时记录应该尽可能地限制)。
来自Log Sparingly (Code Style Guidelines for Contributors) 的
由于这是一个开发环境,并且您还在控制服务器端代码,因此还需要修复服务器输出。您的配置当前正在尝试以root用户身份连接到本地计算机而没有密码(谢天谢地)无效。
你想要: