使用Intent过滤器

时间:2012-08-21 07:14:29

标签: android android-intent intentfilter

我有一个非常奇怪的问题似乎非常无关。我正在尝试使用intent过滤器在我的主应用程序中从我创建的库中的一个活动中打开一个活动(作为来自SO上其他问题的recc)。在库活动中,我创建/调用了这样的意图:

Intent i = new Intent("com.application.mainapplication.tagDetailActivity");
// sending data to new activity
i.putExtra("sub_category", subCats[(int)id]); //Serializable data
i.putExtra("Category", category.name);
startActivity(i);

如果我评论两个i.putExtra,我会收到以下错误:

Could not find Library.apk!

在我的主要应用程序的清单中:

<activity android:name=".tagDetailActivity">
    <intent-filter >
        <action android:name="com.tagsforlikes.tagsforlikes.tagDetailActivity" />
    </intent-filter>
</activity>

我不确定为什么putExtra会导致此错误。我正确地创建了意图吗?它与开始正常的意图(读取:不是intentfilter)并没有什么不同,我担心我错了。

更新

我认为有些混乱。我试图调用的活动不是主应用程序的主要活动。所以对于应用程序,我有一个Free / Pro版本,它们都引用了一个库。在free / pro版本中,主要活动在库中创建一个活动,而该活动又必须再次调用free / pro版本中的活动。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

看看这个答案

Intent intent = new Intent("android.intent.action.MAIN");
intent.setComponent(ComponentName.unflattenFromString("com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks"));
intent.addCategory("android.intent.category.LAUNCHER");
startActivity(intent);

为此你应该安装另一个活动。

查看更多相关帖子

Android, How can I use external APK in my application?

Open another application from your own (intent)

答案 3 :(得分:0)

听起来根本没有安装在手机上:

右键单击项目(不是库),属性,Java构建路径,订单和导出。你的图书馆在这里吗?如果,请确保已选中。如果没有,请确保在库中添加它。