【发布时间】:2015-05-02 01:56:47
【问题描述】:
我一直在尝试运行一个应用程序,该应用程序使用 PHP 和 Android 从 MySQL 存储和检索数据。整个项目在this 链接上。
我收到以下错误
05-01 20:38:57.833: W/System.err(28816): org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.1.34 refused
05-01 20:38:57.842: W/System.err(28816): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:188)
05-01 20:38:57.842: W/System.err(28816): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169)
05-01 20:38:57.842: W/System.err(28816): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124)
05-01 20:38:57.842: W/System.err(28816): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:365)
05-01 20:38:57.842: W/System.err(28816): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
05-01 20:38:57.842: W/System.err(28816): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
05-01 20:38:57.842: W/System.err(28816): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470)
05-01 20:38:57.842: W/System.err(28816): at com.example.androidhive.JSONParser.makeHttpRequest(JSONParser.java:62)
05-01 20:38:57.842: W/System.err(28816): at com.example.androidhive.AllProductsActivity$LoadAllProducts.doInBackground(AllProductsActivity.java:127)
05-01 20:38:57.842: W/System.err(28816): at com.example.androidhive.AllProductsActivity$LoadAllProducts.doInBackground(AllProductsActivity.java:1)
05-01 20:38:57.842: W/System.err(28816): at android.os.AsyncTask$2.call(AsyncTask.java:292)
05-01 20:38:57.842: W/System.err(28816): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-01 20:38:57.842: W/System.err(28816): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-01 20:38:57.843: W/System.err(28816): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-01 20:38:57.843: W/System.err(28816): at java.lang.Thread.run(Thread.java:818)
05-01 20:38:57.853: W/System.err(28816): Caused by: java.net.ConnectException: failed to connect to /192.168.1.34 (port 80): connect failed: ETIMEDOUT (Connection timed out)
05-01 20:38:57.872: W/System.err(28816): at libcore.io.IoBridge.connect(IoBridge.java:124)
05-01 20:38:57.872: W/System.err(28816): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
05-01 20:38:57.872: W/System.err(28816): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
05-01 20:38:57.872: W/System.err(28816): at java.net.Socket.connect(Socket.java:882)
05-01 20:38:57.872: W/System.err(28816): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:124)
05-01 20:38:57.872: W/System.err(28816): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:149)
05-01 20:38:57.872: W/System.err(28816): ... 14 more
05-01 20:38:57.873: W/System.err(28816): Caused by: android.system.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
05-01 20:38:57.873: W/System.err(28816): at libcore.io.Posix.connect(Native Method)
05-01 20:38:57.873: W/System.err(28816): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
05-01 20:38:57.873: W/System.err(28816): at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
05-01 20:38:57.873: W/System.err(28816): at libcore.io.IoBridge.connect(IoBridge.java:122)
05-01 20:38:57.873: W/System.err(28816): ... 19 more
05-01 20:38:57.874: E/Buffer Error(28816): Error converting result java.lang.NullPointerException: lock == null
05-01 20:38:57.897: E/JSON Parser(28816): Error parsing data org.json.JSONException: End of input at character 0 of
05-01 20:38:57.928: E/AndroidRuntime(28816): FATAL EXCEPTION: AsyncTask #1
05-01 20:38:57.928: E/AndroidRuntime(28816): Process: com.example.androidhive, PID: 28816
05-01 20:38:57.928: E/AndroidRuntime(28816): java.lang.RuntimeException: An error occured while executing doInBackground()
05-01 20:38:57.928: E/AndroidRuntime(28816): at android.os.AsyncTask$3.done(AsyncTask.java:304)
05-01 20:38:57.928: E/AndroidRuntime(28816): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
05-01 20:38:57.928: E/AndroidRuntime(28816): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
05-01 20:38:57.928: E/AndroidRuntime(28816): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
05-01 20:38:57.928: E/AndroidRuntime(28816): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-01 20:38:57.928: E/AndroidRuntime(28816): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-01 20:38:57.928: E/AndroidRuntime(28816): at java.lang.Thread.run(Thread.java:818)
05-01 20:38:57.928: E/AndroidRuntime(28816): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.json.JSONObject.toString()' on a null object reference
05-01 20:38:57.928: E/AndroidRuntime(28816): at com.example.androidhive.AllProductsActivity$LoadAllProducts.doInBackground(AllProductsActivity.java:130)
05-01 20:38:57.928: E/AndroidRuntime(28816): at com.example.androidhive.AllProductsActivity$LoadAllProducts.doInBackground(AllProductsActivity.java:1)
05-01 20:38:57.928: E/AndroidRuntime(28816): at android.os.AsyncTask$2.call(AsyncTask.java:292)
05-01 20:38:57.928: E/AndroidRuntime(28816): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-01 20:38:57.928: E/AndroidRuntime(28816): ... 3 more
我已将手机和服务器(笔记本电脑-本地主机)连接到 wifi。在检查 ipconfig 以了解 localhost 的 IP 地址后,我检查了 ping。
IP地址为192.168.1.34(从ipconfig获取)
,ping 使用这个 ip 地址可以正常工作
这个IP地址在浏览器中工作(当我输入这个IP地址时显示本地主机)
我进行了很多搜索,并得到了相同的答案,包括 foll。在清单文件中
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
但我已经包含它并且仍然面临同样的问题。 这是我的清单文件代码。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androidhive"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:configChanges="keyboardHidden|orientation"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainScreenActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- All Product Activity -->
<activity
android:name=".AllProductsActivity"
android:label="All Products" >
</activity>
<!-- Add Product Activity -->
<activity
android:name=".NewProductActivity"
android:label="Add New Product" >
</activity>
<!-- Edit Product Activity -->
<activity
android:name=".EditProductActivity"
android:label="Edit Product" >
</activity>
</application>
<!-- Internet Permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
请帮忙 谢谢你
【问题讨论】:
-
将 'localhost/android_connect/get_all_products.php' 添加到浏览器后,我得到以下输出,{"pid":"1","name":"Siddharth","price":"1876.00" ,"描述":"sdkvjsdij","created_at":"2015-05-01 19:51:57","updated_at":"0000-00-00 00:00:00"}],"成功":1 } " 因此我认为输出是正确的(所以 N/W 肯定有问题)。
-
显示你的 AsyncTask 类。您使用的是框架还是普通的 php?
-
问题已解决,我已开启防火墙。我不得不把它关掉。谢谢詹姆斯的帮助(y)
-
嗨詹姆斯,请帮助我有另一个问题,现在卡在它很长一段时间了。 stackoverflow.com/questions/30018667/…