我在这个问题上已经阅读了大约100个问题和答案,但我似乎无法让这个工作。我正在尝试从Service
开始Activity
。我的清单文件似乎没问题,我启动Service
的方式似乎也是正确的。 LogCat中显示以下错误:
ActivityManager(1296): Unable to start service Intent
{ cmp=com.exercise.AndroidClient/com.client.Communication }: not found
我正在尝试通过在Activity
:
startService(new Intent(getApplicationContext(), Communication.class));
Service
如下:
public class Communication extends Service {
public Communication() {
super();
}
@Override
public void onCreate() {
super.onCreate();
Log.i("Service", "Created service");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("Service", "onStartCommand called");
return START_STICKY;
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}
我的清单文件中的条目是:
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.exercise.AndroidClient" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/sms" android:label="@string/app_name" >
<activity> ... </activity>
<service android:enabled="true" android:name=".Communication" />
</application>
</manifest>
任何建议都非常适合。
答案 0 :(得分:4)
沟通课在哪里?
在您的清单中,您使用android:name=".Communication"
声明服务,这意味着您的服务类应位于com.exercise.AndroidClient.Communication
检查包裹是否正确。注意“。” (点)指的是包的根(即清单中声明的包)。因此,例如,如果您的软件包为com.exercise.AndroidClient
且服务类位于com.exercise.AndroidClient.services.Communication
下,则需要声明此服务:
<service android:enabled="true" android:name=".services.Communication" />
或指定完整的包裹:
<service android:enabled="true" android:name="com.exercise.AndroidClient.services.Communication" />
答案 1 :(得分:0)
我遇到了同样的错误,原因是,AndroidManifest.xml中没有定义该服务。
答案 2 :(得分:0)
此外,如果您的服务恰好存在于您所引用的库项目中,请检查您的project.properties文件。
你必须添加这一行:
manifestmerger.enabled=true