【问题标题】:initialize (com.parse.Parse.Configuration) in Parse cannot be applied to MainActivity Error?Parse 中的 initialize (com.parse.Parse.Configuration) 无法应用于 MainActivity 错误?
【发布时间】:2018-10-08 09:37:21
【问题描述】:

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

无论如何,我遵循了位于 here 的教程,这是一个不错的教程,只是它有点过时了。在教程的最后,它指出我在 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)

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

【问题讨论】:

  • 请提供完整的错误堆栈跟踪。
  • 我在哪里可以找到它?我能找到的只是问题区域下方的波浪线,我将鼠标悬停在上面以获取我复制和粘贴的错误
  • 再次运行您的项目以生成错误。然后从 logcat 中,复制所有错误日志并发布到您的问题中

标签: android android-studio parse-platform back4app parse-android-sdk


【解决方案1】:

首先,删除对您的 MainActivity.java 的任何 Parse 引用,因此它应该如下所示:

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 为您的应用工作并删除所有错误消息。

【讨论】:

    【解决方案2】:

    我猜Parse.initialize(this); 中使用的context 会导致问题。

    尝试创建一个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
        }
    }
    

    然后在ActivityonCreate() 中使用它:

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

    就像他们的example

    记得把它添加到你的AndroidManifest.xml:

    <application
     android:name=".App"
    

    【讨论】:

    • 好的,我这样做了,它给了我同样的错误,但它现在只是移到了 App 类。
    • 有趣。你检查过进口吗?您是否检查过是否正确添加了依赖项?
    【解决方案3】:

    请确保您在 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()
            );
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多