-1

Hi currently i am working on project including parse server,and after adding parse library to my project ,when i run it it shows this error ( java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplicationv/com.example.myapplicationv.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:2646) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 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:509) at com.parse.ParseCorePlugins.getCurrentUserController(ParseCorePlugins.java:130) at com.parse.ParseUser.getCurrentUserController(ParseUser.java:55) at com.parse.ParseUser.getCurrentUserAsync(ParseUser.java:883) at com.parse.ParseObject.saveInBackground(ParseObject.java:1405) at com.parse.ParseObject.saveInBackground(ParseObject.java:1529) at com.example.myapplicationv.MainActivity.onCreate(MainActivity.java:22) at android.app.Activity.performCreate(Activity.java:6662) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)  at android.app.ActivityThread.-wrap12(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:154)  at android.app.ActivityThread.main(ActivityThread.java:6077)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)  )

this is MainActivity here

MainActivity package com.example.myapplicationv; import android.os.Bundle; import android.util.Log; import androidx.appcompat.app.AppCompatActivity; 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); ParseObject score = new ParseObject("Score"); score.put("username","Nalin"); score.put("score",200); score.saveInBackground(new SaveCallback() { @Override public void done(ParseException e) { if (e == null){ Log.i("success","we save the score"); }else{ e.printStackTrace(); } } }); ParseAnalytics.trackAppOpenedInBackground(getIntent()); } } 

StarterApplication

 package com.example.myapplicationv; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import com.parse.Parse; import com.parse.ParseACL; import com.parse.ParseUser; public class StarterApplication extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_starter_application); Parse.enableLocalDatastore(this); Parse.initialize(new Parse.Configuration.Builder(getApplicationContext()) .applicationId("myappID") .clientKey("nV48GY6ZE5Lw") .server("http://18.217.199.68/parse/") .build() ); ParseUser.enableAutomaticUser(); ParseACL defaultACL = new ParseACL(); defaultACL.setPublicReadAccess(true); defaultACL.setPublicWriteAccess(true); ParseACL.setDefaultACL(defaultACL, true); } } 
2
  • Instead of posting the code photo please post the code Commented Apr 25, 2020 at 10:06
  • i have added the code .. Commented Apr 25, 2020 at 10:14

1 Answer 1

0

You need to initialize the parser in the application class as explained in document here. Also should declare it in the Manifest file.

The problem that I encounter was that the Document that shows to Use a class App extending Application was never initialized even after adding the activity in Manifest(it gives a red line also). So what I did was I saved the below code in the onCreate of my SplashActivity

Parse.initialize(new Parse.Configuration.Builder(this) .applicationId(getString(R.string.back4app_app_id)) // if defined .clientKey(getString(R.string.back4app_client_key)) .server(getString(R.string.back4app_server_url)) .enableLocalDataStore() // <--- This is important .build()); 

Now After this I'm able to use it normally.

Sign up to request clarification or add additional context in comments.

2 Comments

i have already declare it in the manifest file
i have initialized as explaind in document but it still shows same error

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.