Parse Server Android Studio не показывает информацию

Моя проблема в том, что мой сервер синтаксического анализа не получит никакой информации из моего приложения. Я включил журналы ошибок, начальный класс и основной класс. Мой сервер разбора не показывает никакой информации, передаваемой ему.

package com.karanvir.myapplication5;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import com.parse.Parse;
import com.parse.ParseAnalytics;
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);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        Parse.enableLocalDatastore(this);


        ParseObject object= new ParseObject("example");
                object.put("my number","123");
        object.put("my string","karn");
        object.saveInBackground(new SaveCallback() {
            @Override
            public void done(ParseException e) {

                if(e==null){
                    Log.i("hello","anything");
                } else {
                    Log.i("random","morerandom");
                }

            }
        });
        ParseAnalytics.trackAppOpenedInBackground(getIntent());

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

07-13 11:47:23.618 16945-16945/com.karanvir.myapplication5 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             Process: com.karanvir.myapplication5, PID: 16945
                                                                             java.lang.RuntimeException: Unable to start activity ComponentInfo{com.karanvir.myapplication5/com.karanvir.myapplication5.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File com.parse.ParsePlugins.getParseDir()' on a null object reference
                                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
                                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
                                                                                 at android.app.ActivityThread.access$1100(ActivityThread.java:221)
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                 at android.os.Looper.loop(Looper.java:158)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:7224)
                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
                                                                              Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File com.parse.ParsePlugins.getParseDir()' on a null object reference
                                                                                 at com.parse.Parse.getParseDir(Parse.java:499)
                                                                                 at com.parse.ParseCorePlugins.getLocalIdManager(ParseCorePlugins.java:328)
                                                                                 at com.parse.ParseObject.getLocalIdManager(ParseObject.java:87)
                                                                                 at com.parse.ParseObject.getOrCreateLocalId(ParseObject.java:1310)
                                                                                 at com.parse.ParseObject.saveEventually(ParseObject.java:1719)
                                                                                 at com.parse.ParseObject.saveEventually(ParseObject.java:1673)
                                                                                 at com.karanvir.myapplication5.MainActivity.onCreate(MainActivity.java:31)
                                                                                 at android.app.Activity.performCreate(Activity.java:6876)
                                                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
                                                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
                                                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                                                                                 at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                 at android.os.Looper.loop(Looper.java:158) 
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:7224) 
                                                                                 at java.lang.reflect.Method.invoke(Native Method) 
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
/*
 * Copyright (c) 2015-present, Parse, LLC.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */
package com.karanvir.myapplication5;

import android.app.Application;
import android.util.Log;

import com.parse.Parse;
import com.parse.ParseACL;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseUser;
import com.parse.SaveCallback;


public class StarterApplication extends Application {

  @Override
  public void onCreate() {
    super.onCreate();

    // Enable Local Datastore.
    Parse.enableLocalDatastore(this);

    // Add your initialization code here
    Parse.initialize(new Parse.Configuration.Builder(getApplicationContext())
            .applicationId("783b7")
            .clientKey( "3b6")
            .server( "httpe/")
            .build()
    );

   /* ParseObject object = new ParseObject("ExampleObject");
    object.put("myNumber", "123");
    object.put("myString", "rob");

    object.saveInBackground(new SaveCallback () {
      @Override
      public void done(ParseException ex) {
        if (ex == null) {
          Log.i("Parse Result", "Successful!");
        } else {
          Log.i("Parse Result", "Failed" + ex.toString());
        }
      }
    });*/


    ParseUser.enableAutomaticUser();



  }
}
package com.karanvir.myapplication5;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import com.parse.Parse;
import com.parse.ParseAnalytics;
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);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        Parse.enableLocalDatastore(this);


        ParseObject object= new ParseObject("example");
                object.put("my number","123");
        object.put("my string","karn");
        object.saveInBackground(new SaveCallback() {
            @Override
            public void done(ParseException e) {

                if(e==null){
                    Log.i("hello","anything");
                } else {
                    Log.i("random","morerandom");
                }

            }
        });
        ParseAnalytics.trackAppOpenedInBackground(getIntent());

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

4 ответа

Решение

ЗДЕСЬ РЕШЕНИЕ, КАК НАСТРОИТЬ PARSE НА ЛЮБОМ ПРОЕКТЕ ANDROID STUDIO!

ШАГ 1: я написал следующий код под зависимостями в build.gradle(Модуль:): -

compile 'com.parse:parse-android:1.15.7'(СЛЕДУЮЩАЯ СИНХРОНИЗАЦИЯ ВАШЕГО РЕЙКА)

Делая это, вы сможете волшебным образом использовать ключевые слова и методы разбора.

ШАГ 2: СЕЙЧАС ЗДЕСЬ. ВАМ НЕ НУЖНО ИМЕТЬ JAVA-КЛАСС STARTERAPPLICATION В ВАШЕМ ПРОЕКТЕ Android.

ТАКЖЕ НЕ НУЖНО ИМЕТЬ ДРУГИХ КЛАССНЫХ ПАРЕНЕЙ!

ТАКЖЕ ДОБАВИТЬ СЛЕДУЮЩУЮ

/КОД, КОТОРЫЙ ДОЛЖЕН БЫТЬ В ANDROIDMANIFEST:/

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

СЕЙЧАС ДВИЖИТЕСЬ НА ШАГ 3

ШАГ 3: ****** ЗДЕСЬ ВАЖНАЯ ЧАСТЬ ****

ВЫ ДОЛЖНЫ ИНИЦИАЛИЗИРОВАТЬ СВОЙ РАЗБОР, (С ОГРАНИЧЕННЫМИ ЗНАНИЯМИ, КОТОРЫЕ Я ИМЕЮ, Я ИНИЦИАЛИЗИРОВАЛ ЭТО В СФЕРЕ ОБСЛУЖИВАНИЯ В ОБЛАСТИ ОБСЛУЖИВАНИЯ)

Parse.initialize(new Parse.Configuration.Builder(getApplicationContext())
        .applicationId("YOUR_APP_ID")
        .clientKey("YOUR_MASTER_KEY")
        .server("YOUR_SERVER_URL")
        .build()
);

И ВЫ СДЕЛАЛИ!!! ВЫ УСПЕШНО УСТАНАВЛИВАЕТЕ PARSE!!!!!!!

Я думаю, вам нужно поставить эту строку после object.put(...);

object.saveInBackground();

См. http://docs.parseplatform.org/android/guide/ и см. "Сохранение объектов" и "Локальное хранилище данных". Они имеют следующие коды после помещения информации в объекты.

pinInBackground();
saveInBackground();

Кроме того, предложение, ваш ID приложения, clientKey и адрес вашего сервера должны быть замаскированы по соображениям безопасности.

Во-первых, вы не должны раскрывать ничего из этого - applicationId, clientKey, server{или любой другой ключ}, вместо этого вы должны добавить его в свой gradle.property следующим образом MyApiKey="2000000000000000" и получить его, таким образом, в ваших типах сборки gradle. каждый {it.buildConfigField 'String', 'TOKEN_API_KEY', MyApiKey}, и вы можете использовать ключ любого из ваших действий таким образом, String my = BuildConfig.TOKEN_API_KEY, поэтому в вашем коде, например, вы будете иметь.clientKey(BuildConfig.TOKEN_API_)

На ваш вопрос вы должны записать свой ответ, это не только облегчит вам отладку или просмотр значения результата, вы также можете установить точку останова и войти, выйти и посмотреть, что происходит. чтобы установить журнал, вам нужно Log.d(TAG, значение), где TAG является приватной статической конечной строкой. TAG = yourClass.class.getSimpleName();

Вам нужно поместить информацию о разборе в другой класс, который расширяет Application.

Проверьте этот ответ, который я имел на посте другого человека.

/questions/20827762/kak-uspeshno-zapustit-android-prilozhenie-parsecom-na-heruko-i-razvernut-panel-analiza/20827769#20827769

Как только вы это сделаете, MainActivity может разместить ваше приложение для всего, что вам нужно. Дайте знать, если у вас появятся вопросы

Другие вопросы по тегам