initialize (com.parse.Parse.Configuration) в Parse нельзя применить к ошибке MainActivity?

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

В любом случае, я следовал учебнику, который находится здесь, который был хорошим учебником, за исключением того, что он был немного устаревшим. В конце урока говорится, что мой метод oncreate в mainacctivity должен выглядеть следующим образом:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Parse.initialize(this);

    ParseInstallation.getCurrentInstallation().saveInBackground();
}

Когда я вхожу в этот код, я получаю синтаксическую ошибку, которая говорит это:

initialize (com.parse.Parse.Configuration) in Parse cannot be applied to (com.example.zica.spartanjcapp.MainActivity)

Я искал в нескольких различных областях и не могу найти ничего, что относится к моей проблеме или как ее решить. Я также прошел весь урок, чтобы убедиться, что следовал ему до Т, и я могу убедиться, что у меня есть. Если кто-нибудь сможет помочь мне решить мою проблему, я буду очень признателен. Спасибо, что нашли время, чтобы прочитать это.

2 ответа

Во-первых, УДАЛИТЕ любые ссылки Parse на ваш MainActivity.javaтак должно выглядеть так:

import com.parse.ParseObject;
import com.parse.ParseUser;

// Import whatever Parse classes you need here...

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Remove ALL Parse references, do NOT use them here...
    }
}

Тогда в вашем App.java файл, сделайте это:

import com.parse.Parse;

// Add/keep other imports as required...

public class App extends Application {
@Override
public void onCreate() {
    super.onCreate();
    Parse.initialize(new Parse.Configuration.Builder(context: this)
            .applicationId("APP_ID_HERE")
            .clientKey("CLIENT_KEY_HERE")
            .server("SERVER_URL_HERE")
            .enableLocalDataStore() // <--- ADD THIS HERE!
            .build()
    );
}

Конечно, добавьте файл App.java в свой Manifest.xml вот так:

<application
    android:name=".App"

    <!-- Add other settings, as required... -->

</application>

Это должно заставить localDatastore работать для вашего приложения и удалять любые сообщения об ошибках.

Я думаю, context который используется в Parse.initialize(this); вызвать проблему.

Попробуйте создать Application класс и назовите это App:

import com.parse.Parse;
import android.app.Application;  

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Parse.initialize(this); // initialize it here
    }
}

Тогда просто используйте это внутри onCreate() вашей Activity:

// Save the current Installation to Back4App
ParseInstallation.getCurrentInstallation().saveInBackground();

Так же, как их пример.

Не забудьте добавить его в свой AndroidManifest.xml:

<application
 android:name=".App"

Я прошу вас убедиться, что вы используете последнюю версию Parse SDK в вашем build.gradle (Модуль: приложение).

implementation 'com.github.parse-community.Parse-SDK-Android:parse:1.18.5' // latest SDK version

И ваши репозитории вот так:

repositories {
    mavenCentral()
    jcenter()
    maven {
        url "https://jitpack.io"
    }
}

Если это так, пожалуйста, дважды проверьте ваш файл "App.java" с вашим кодом инициализации следующим образом:

import com.parse.Parse;
import android.app.Application;

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Parse.initialize(new Parse.Configuration.Builder(context: this)
                .applicationId("<APP ID HERE>")
                .clientKey("<CLIENT KEY HERE>")
                .server("<SERVER URL HERE>")
                .build()
        );

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