我一直在寻找,但没有一个解决方案能解决我的问题。例如:添加parseLogInterceptor,更改版本。我正在尝试测试我的应用程序以连接到我的本地Parse服务器,但它给了我:
com.parse.ParseRequest $ ParseRequestException:i / o失败。
因此在数据库中没有创建对象。我尝试使用javascript从我的浏览器创建对象,它可以无缝地工作。
我在我的模拟器上运行此操作并使用Android监视器。我使用的是Android Studio 2.2.1。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.parse.Parse;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.SaveCallback;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Parse.addParseNetworkInterceptor(new ParseLogInterceptor());
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId("abc123")
.server("http://localhost:1337/parse/")
.clientKey("")
.build()
);
Log.i("ME", "DONE onCreate");
ParseObject testObject = new ParseObject("SomeObject");
testObject.put("foo", "bar");
testObject.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
Log.v("MAIN", "PARSE ERROR:" + e);
}
});
}
}
这是我的应用程序gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
defaultConfig {
applicationId "noxasch.com.testParse"
minSdkVersion 19
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
compile 'com.parse:parse-android:1.13.0'
}
答案 0 :(得分:1)
您的应用程序与服务器之间的连接未建立。
我遇到了同样的错误,直到我在模拟器中打开WiFi。您也可以尝试在手机上运行它,以确保手机连接正确。
答案 1 :(得分:0)
我解决了这个问题。如果使用模拟器,您可以使用http://10.0.2.2/而不是localhost或127.0.0.1来访问主机。开发者网站不断变化,我无法找到文档,但我在此处找到How to connect to my http://localhost web server from Android Emulator in Eclipse
答案 2 :(得分:0)
错误:com.parse.ParseRequest $ ParseRequestException:I / O失败。
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId("abc123")
.server("http://localhost:1337/parse/")
.clientKey("")
.build()
);
使用解析服务器的Ip地址代替本地主机。 .server(“ http://192.168.1.100:1337/parse/”) 之后,删除AVD并再次重新创建
对我来说是有效的
答案 3 :(得分:0)
如果不是本地主机
您没有授予Internet权限
在 AndroidManifest.xml 中添加这些行,您的问题将得到解决
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
答案 4 :(得分:0)
在这种情况下,这不是问题,但是对于其他寻求解决同一问题的方法的人,请添加-
android:usescleartexttraffic="true"
在清单文件中。
答案 5 :(得分:0)
我遇到了同样的错误。可以通过添加
来解决选项1:
android:usesCleartextTraffic =“ true”
选项2:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
在您的AndroidManifest.xml
中Here is the AndroidManifest.xml ,so you can check it here.I hope this will help you!
答案 6 :(得分:0)
我也遇到了同样的错误。我按照以下步骤解决了该问题:
步骤1:将此行添加到 AndroidManifest.xml 中:android:usesCleartextTraffic="true"
第2步:确保您已在 AndroidManifest.xml 中授予权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
这对我有用。希望它也对您有用。