Я искал, но ни одно из решений не исправило мое. например: добавить parseLogInterceptor, изменить версию. Я пытаюсь протестировать свои приложения для подключения к моему локальному Parse-серверу, но он дает мне:

com.parse.ParseRequest $ ParseRequestException: ошибка ввода-вывода.

И, следовательно, в базе данных не создается никаких объектов. Я попытался использовать javascript для создания объекта в моем браузере, и он работал без проблем.

Я запускаю это на своем эмуляторе и использую Android Monitor. Я использую 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);
        }
    });

}
}

И это мой градиент приложения:

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'
}
1
Alexander Dischberg 16 Окт 2016 в 12:38

6 ответов

Лучший ответ

Я исправляю эту проблему. При использовании эмулятора предполагается использовать http://10.0.2.2/ вместо localhost или 127.0.0.1 для доступ к хосту. сайт разработчика постоянно меняется, я не могу найти документацию, но нахожу ее здесь Как подключиться к моему веб-серверу http: // localhost из эмулятора Android в Eclipse

0
Community 23 Май 2017 в 11:46

Я тоже получал ту же ошибку. Я выполнил следующие шаги, чтобы решить эту проблему:

ШАГ 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"/>

Это сработало для меня. Надеюсь, это сработает и для вас.

0
Prathamesh 10 Сен 2020 в 08:02

В этом случае проблема не в этом, но для тех, кто ищет решение той же проблемы, добавьте -

android:usescleartexttraffic="true"

В вашем файле манифеста.

0
Vaishnav Garodia 23 Июн 2020 в 10:05

Соединение между вашим приложением и сервером не установлено.

Я получал ту же ошибку, пока не включил Wi-Fi в своем эмуляторе. Вы также можете попробовать запустить его на своем телефоне, убедившись, что ваш телефон имеет правильное соединение.

1
Sagar 26 Июл 2018 в 17:55

Если это не localhost

Вы не даете разрешение на доступ в Интернет

Добавьте эти строки в AndroidManifest.xml , ваша проблема будет решена

   <uses-permission android:name="android.permission.INTERNET"/>
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
0
sai Pavan Kumar 6 Окт 2019 в 09:34

Я столкнулся с той же ошибкой, ее можно исправить, добавив

Опция 1:

Андроид : usesCleartextTraffic = " истина"

Вариант 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

Вот файл AndroidManifest.xml, так что вы можете проверить его здесь. Надеюсь, это вам поможет!

0
TechAndCode 20 Авг 2020 в 09:59