创建对象时出错:com.parse.ParseRequest $ ParseRequestException:i / o失败

时间:2016-10-16 09:38:52

标签: android exception parse-platform

我一直在寻找,但没有一个解决方案能解决我的问题。例如:添加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'
}

7 个答案:

答案 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"/>

这对我有用。希望它也对您有用。