我有一个服务类,我已经将这个类导出到jar中,并将这个jar嵌入到我的客户端应用程序中。
当需要时,我调用服务类。当我尝试这样做时,我得到以下错误:
Unable to start service Intent {comp={com.sample.service/com.sample.service.serviceClass}} : not found
除了服务类之外,我还有其他类,我可以访问(创建该类的对象)这些类都在同一个jar中。
我觉得我遗漏了一些东西在我的配置或清单左右。
请帮我确认一下,我的代码如下:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent () ;
intent.setClassName("com.sample.service" ,"com.sample.service.serviceClass") ;
this.startService(intent) ; // when I call this line I get the message...
// binding other process continue here
}
客户端清单. xml
<service android:name="com.sample.service.serviceClass"
android:exported="true" android:label="@string/app_name"
android:process=":remote">
<intent-filter><action android:name="com.sample.service.serviceClass"></action>
</intent-filter>
</service>
6条答案
按热度按时间pu82cl6c1#
对于任何其他人遇到这个线程,我有这个问题,是拉我的头发了。我有服务声明以外的'< application>'结束标记DUH!
右:
错误,但编译时仍无错误:
tp5buhyn2#
首先,您不需要
android:process=":remote"
,所以请删除它,因为它所做的一切只是占用额外的RAM,没有任何好处。其次,由于
<service>
元素包含一个action字符串,因此使用它:bogh5gae3#
1)检查清单中的服务声明是否嵌套在应用程序标记中
2)检查
service.java
是否与练习位于同一个包或diff包中x一个一个一个一个x一个一个二个x
o8x7eapl4#
我希望我可以帮助别人与此信息以及:我把我的服务类移到了另一个包中,我修复了引用。这个项目非常好,但是活动找不到服务类。
通过查看logcat中的日志,我注意到了关于此问题的警告:活动找不到服务类,但有趣的是包不正确,它包含一个“/”字符。编译器正在查找
com.something./service.MyService
代替
com.something.service.MyService
我把服务类从包中移出来,又移了回来,一切都运行得很好。
31moq8wy5#
在我的情况下,1 MB的最大上限为数据传输的意图。我将只使用缓存或存储。
u0njafvf6#
我发现了同样的问题。我花了几乎一天的时间尝试从
OnClickListener
方法启动一个服务-在onCreate
方法之外,一天后,我仍然失败了!!!!非常令人沮丧!我正在看RemoteServiceController
的示例。他们的工作,但我的实现不工作!对我来说唯一有效的方法是从
onCreate
方法里面,其他的变体都不起作用,相信我,我都试过了。结论:
Intent(package,className)
启动,但一无所获,也有其他类型的Intent启动onCreate
方法中定义列表器onClick
有所帮助,如下所示:对于清单文件,确保服务是应用程序的子级也非常重要: