我正在尝试从添加到另一个添加到应用程序项目的库项目的库项目中绑定服务。 因此库A被库B引用,库B被添加到我的应用程序中。该应用程序启动服务A.另一个应用程序启动服务B.服务B绑定到服务A但未通过
ActivityManager(593): Unable to start service Intent { act=com.xx.yy.zz/.Service } U=0: not found
- 我可以在应用程序中找到包含服务的jar(在android依赖项中)。 - 我在清单(应用程序)中声明了应用程序。
<service android:name="com.xx.yy.zz.Service"
android:exported="true"
android:enabled="true">
</service>
- 服务声明在应用程序标记内。 - 该服务扩展了服务 - 两个服务都生成日志,因此它们都已启动
这是我尝试绑定服务的方式
private void bindToService() {
Toast.makeText(getApplicationContext(), "Binding service", Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
intent.setClassName("com.xx.yy.zz", "com.xx.yy.zz.Service");
mBound = getApplicationContext().bindService(intent, this, BIND_AUTO_CREATE);
Log.d(TAG, "bindService returned " + mBound);
}
mBound始终返回false。 之前已经绑定了这些服务(在使用相同代码分配的testapp中)。 服务使用AIDL绑定(没有更改为该代码)。
我无法粘贴更多代码,所以我希望这足以让我顺利上路。 提前谢谢。
答案 0 :(得分:2)
我修复了它,事实证明我必须提供应用程序包名称和库包名称。
所以而不是:
intent.setClassName("com.library.package.name", "com.library.package.name.Service");
我必须这样做:
intent.setClassName("com.application.package.name", "com.library.package.name.Service");
我希望这有助于其他人!我浪费了很多时间在这上面。