2013-03-19 103 views
1

我想使用远程服务来构建蓝牙聊天(如Android样本之一)。但自从我上次修改以来,应用程序无法启动,并且日志显示我的服务的错误no empty constructor。我读过this post,但我不能添加任何空的构造函数。必须有一些我做错了,或者它不适用于远程服务。没有空的构造函数

这是我的构造函数:

public RemoteService(Context context, Handler handler) { 
    mAdapter = BluetoothAdapter.getDefaultAdapter(); 
    mState = STATE_NONE; 
} 

有人能告诉我什么是错呢?

+0

为什么你不能添加一个空的构造函数? – Neil 2013-03-19 11:26:22

+0

您必须添加一个无参数构造函数 – 2013-03-19 11:27:19

回答

1

尝试:

public RemoteService() { 
    super(); 
} 

除非你的业务规则规定你不能真的有一个空的构造。那么你在某个地方呼叫new RemoteService(),当你不应该。

0

您必须提供默认的构造函数,因为服务需要一个默认的构造函数,然后您可以使用参数化的构造函数。

public class ReminderService extends IntentService { 

    ---------------------------- 
    public ReminderService() // Need to add the default constructor 
    { 
     super("ReminderService"); // Calling the super constructor 
    } 

    public RemoteService(Context context, Handler handler) //Then use your own constructor 
    { 
    mAdapter = BluetoothAdapter.getDefaultAdapter(); 
    mState = STATE_NONE; 
    } 
    ---------------------------------- 

} 

试试这个,让我知道如果你仍然有任何问题。

0

感谢您的回答,但与此同时,有人帮我清理了代码,删除了构造函数并做了其他一些事情,但我并不了解所有的东西。

我很抱歉,我无法解释到底什么是错的,但我可以说非参数构造函数产生错误。

相关问题