我遇到了其他人遇到的同样问题,但我无法让我的代码工作。
我必须使用java类,Test.java和TestService.java,当我尝试启动Service或绑定Service时,我总是会遇到上面列出的错误。我在here尝试了推荐的标准解决方案,但它没有用。我将尝试重命名java文件并启动一个新项目,看看它是否如here中所述。
然后我在Vogella看到这个link,我必须在设备上注册一个谷歌用户。这是我的问题是什么,或者我是否混淆了错误(也许'intent.REGISTER'指的是其他东西)。
对此有任何建议将不胜感激。
4.3。注册您的申请
运行您的应用程序,维护您的注册用户并按下 按钮。检查LogCat的注册ID。
如果您看到以下消息:
“无法启动服务意图 {act = com.google.android.c2dm.intent.REGISTER ...}:找不到“
我在手机和模拟器上试过这个。
权限:
<application android:icon="@drawable/gyroscopic" android:label="@string/app_name">
...
<activity android:name="Test"></activity>
<service android:name="TestService"></service>
....
</application>
答案 0 :(得分:0)
尝试将整个软件包代码用于您的服务,这就是我一直以来所做的事情,而且到目前为止它始终有效。
<service
android:enabled="true"
android:name="com.mobowski.appfrag.service.MusicService" >
</service>
编辑以启动/绑定服务。
我通常这样做:
启动服务
// This is in the onCreate of my main screen, but this would work in a button
startService(
new Intent(this, Service.class));
在服务中
绑定到服务时将使用此
// Field of service
private final IBinder mBinder = new MyBinder();
// We return the binder class upon a call of bindService
@Override
public IBinder onBind(Intent arg0) {
return mBinder;
}
public class MyBinder extends Binder {
public MusicService getService() {
return MusicService.this;
}
}
绑定到服务
为此,我使用了一些我从一个例子中获取的代码,但到目前为止它们从未让我失望。
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder binder) {
s = ((MusicService.MyBinder) binder).getService();
Toast.makeText(this, "Connected", Toast.LENGTH_SHORT)
.show();
// Little Toast to make sure we connected
}
public void onServiceDisconnected(ComponentName className) {
s = null;
}
};
void doBindService() {
bindService(
new Intent(this,
MusicService.class), mConnection,
Context.BIND_AUTO_CREATE);
}
答案 1 :(得分:0)
您需要以某种形式在name属性中提供名称空间:
<service android:name="edu.darts.neuromobi.TestService"></service>
或可能:
<service android:name=".TestService"></service>