1

我是 android 开发、应用程序开发和开发的初学者,我正在尝试为我的 android 应用程序设置一个后端数据库。我决定使用一个名为 back4app 的服务,以便对数据库有更友好的用户体验,因为我也是使用数据库的新手。

无论如何,我遵循了位于此处的教程,这是一个不错的教程,只是它有点过时了。在教程的最后,它指出我在 mainactivity 中的 oncreate 方法应该如下所示:

@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)

我在几个不同的领域进行了搜索,但找不到与我的问题或如何解决问题相关的任何内容。我还阅读了整个教程,以确保我遵循它到 T 并且我可以向你保证我有。如果有人能够帮助我解决我的问题,我将不胜感激。感谢您抽出时间来阅读。  

4

3 回答 3

3

首先,删除对你的任何 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()
    );
}

当然,Manifest.xml像这样添加 App.java 文件:

<application
    android:name=".App"

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

</application>

这应该使 localDatastore 为您的应用程序工作并删除任何错误消息。

于 2019-02-20T15:56:50.093 回答
1

我恳请您确保您在 build.gradle (Module:app) 中使用最新版本的 Parse SDK。

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()
        );

    }
}
于 2018-10-15T16:20:21.667 回答
1

我猜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"
于 2018-10-08T09:50:49.653 回答