从Project Manifest启动库活动

时间:2013-02-27 12:47:12

标签: android android-manifest

嗨我在我的图书馆中定义了一个活动,就像这样......

<activity
            android:name="com.company.application.corelibrary.recording.DesiredActivity"
            android:label="@string/title_activity_tracking"
            android:screenOrientation="portrait" 
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

然后我想使用这个库在另一个我正在做的应用程序中启动...

<activity
        android:name="com.company.application.corelibrary.recording.DesiredActivity"
        android:label="@string/title_activity_tracking"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

然而,当我要构建它时,它会回来......

[2013-02-27 12:41:33 - TestApplication] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.company.application/.corelibrary.recording.DesiredActivity }
[2013-02-27 12:41:33 - TestApplication] ActivityManager: Error type 3
[2013-02-27 12:41:33 - TestApplication] ActivityManager: Error: Activity class {com.company.application/com.company.application.corelibrary.recording.DesiredActivity} does not exist.

com.company.application是我的项目包。

com.company.application.corelibrary是我的图书馆资料包。

我已将该库包含在我的项目中。

我做错了什么?

ADDITION

我刚刚将我的图书馆项目的包名重命名为与我的项目不同的东西,因为我认为可能是因为它们相似,项目可能会看到它自己的课程来源,但这也不起作用。

3 个答案:

答案 0 :(得分:0)

在我的应用程序中,我在清单中编写了活动,如:

    <activity android:name="MainActivity"
             android:label="@string/app_name"
             android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

我还在清单中声明了另一个活动(哪个活动属于我的库):

<activity android:name="com.facebook.LoginActivity"
      android:label="@string/app_name" />
希望这会对你有所帮助。

<强> N.B:

你不应该使用

<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

清单中的两项活动。

答案 1 :(得分:0)

我以为我会回答我自己的问题。其他答案可能有效,但这就解决了我的问题。

在新项目清单中我的活动声明之前,我遇到了以下问题。

<uses-library
   android:name="com.corecoders.st.corelibrary"
   android:required="true" />

我删除了它,清理并重建了项目,它启动良好。

答案 2 :(得分:0)

我通过实现io.card在他们的库中做的解决方案解决了这个问题。通过使用应用程序包装将活动标记到库清单中。

<application>
    <activity
        android:name="com.eckoh.eckohroute.ActionConsumingActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:theme="@style/Theme.Dialog.ActionActivity" />

 </application>