gpt4 book ai didi

java - 安卓工作室 : error: incompatible types: MainActivity cannot be converted to Application

转载 作者:行者123 更新时间:2023-12-05 00:14:03 34 4
gpt4 key购买 nike

我在构建我的应用程序时遇到了无法解决的问题,我需要一些帮助。

我有一个简单的类,MainActivity.java这是一个非常基本的应用程序,用于测试通过 FCB 接收推送消息。我现在也在尝试为第三方实现一个 SDK,通过发送和接收推送,这就是我遇到的问题。

这是我类(class)的代码:

package com.emarsys.tcspushtestapp;

import android.app.Application;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.emarsys.mobileengage.MobileEngage;
import com.emarsys.mobileengage.config.MobileEngageConfig;
import com.google.firebase.iid.FirebaseInstanceId;

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";

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

Button btnShowToken = (Button)findViewById(R.id.button_show_token);
btnShowToken.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Get the token
String token = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Token: + " + token);
Toast.makeText(MainActivity.this, token, Toast.LENGTH_SHORT).show();
}
});

MobileEngageConfig config = new MobileEngageConfig.Builder()
.application(this)
.credentials(String, String)
.enableDefaultChannel("MainChannel", "Default Channel")
//.disableDefaultChannel()
.build();
MobileEngage.setup(config);
}
}

这个问题与:

.application(this) ,其中 (this) 下面有一条红色错误行:

构建器中的应用程序(android.app.Application)无法应用于(com.emarsys.tcspushtestapp.MainActivity)

编译错误:错误:不兼容的类型:无法将 MainActivity 转换为应用程序

当我更改我的类以扩展到应用程序而不是 AppCompatActivity 时,错误消失但新错误出现在 .onCreate、setContentView 和 findViewById 上。

我尝试过的其他事情是:公共(public)类 MainActivity 扩展 AppCompatActivity 实现应用程序

然后它提示说它期待应用程序的接口(interface)。

非常感谢任何帮助!

谢谢。亲切的问候,医学博士

最佳答案

this 指的是 MainActivity。 Activity 属于上下文类型。 MobileEngageConfig 构建器需要您的 Application 类的一个实例。使用 getApplication(); 代替

编辑:您遵循的教程很可能在自定义 Application 类中使用了构建器方法,因此他们使用 this 的原因。

关于java - 安卓工作室 : error: incompatible types: MainActivity cannot be converted to Application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49920678/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com