如何合并图书馆清单中的服务?

时间:2014-11-22 15:39:00

标签: android android-gradle

我有主应用程序和库。图书馆有一项服务。我需要将服务的定义合并到主应用程序,但它不会发生。

所以,我有这个库的AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ru.foobar.lib.test"
 android:versionCode="1" android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="21" />

    <service
            android:name="ru.foobar.test.http.HttpService"
            android:exported="false"
            android:process=":ru.foobar.test.http.HttpService" />
    <application />
</manifest>

我通过gradle将此库导入主应用程序:

dependencies {
    ....
    compile project(':TestLib')
}

然后我在app的onCreate方法中启动服务:

@Override
public void onCreate() {
    super.onCreate();
    Intent serviceIntent = new Intent(this, HttpService.class);
    startService(serviceIntent);
}

我在日志中失败了:

W/ActivityManager(  375): Unable to start service Intent { cmp=ru.foobar.mainapp/ru.foobar.test.http.HttpService } U=0: not found

如果我将服务定义添加到主应用程序的清单中,服务就会正常启动。

是否可以自动合并主应用程序和库中的清单?

1 个答案:

答案 0 :(得分:0)

您需要在应用程序清单中定义服务,因此请复制此

<service
   android:name="ru.foobar.test.http.HttpService"
   android:exported="false"
   android:process=":ru.foobar.test.http.HttpService" />

进入应用 AndroidManifest.xml