我正在尝试将库活动访问到另一个项目中(在tabhost中) 并且每个标签调用不同的活动。)但它抛出异常
Caused by: android.content.ActivityNotFoundException: Unable to find
explicit activity class
{com.themontcalm.droid.activity/com.themontcalm.droid.lib.activity.ReservationTab};
have you declared this activity in your AndroidManifest.xml?
其中: -
com.themontcalm.droid.lib.activity.ReservationTab
是一个 图书馆项目。和com.themontcalm.droid.activity
发射器 我正在访问图书馆活动的项目我正在访问我的项目库的代码:---
package com.themontcalm.droid.activity;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TabHost;
public class HomeScreen extends TabActivity implements OnClickListener {
TabHost tabHost;
ImageButton location, contacts, explore;
Intent intent;
//LocationGB locationActivity = new LocationGB();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_screen);
//LocationFactory.getInstance().setLocationActivity(LocationGB.class);
// addListenerOnButton();
location = (ImageButton) findViewById(R.id.location);
contacts = (ImageButton) findViewById(R.id.contacts);
explore = (ImageButton) findViewById(R.id.explore);
location.setOnClickListener(this);
contacts.setOnClickListener(this);
explore.setOnClickListener(this);
Resources res = getResources(); // Resource object to get Drawables
// The activity TabHost
TabHost.TabSpec spec; // Reusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost = getTabHost();
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(getBaseContext(), com.themontcalm.droid.lib.activity.ReservationTab.class);
spec = tabHost.newTabSpec("RESERVATION")
.setIndicator("", res.getDrawable(R.drawable.testing))// ,
// res.getDrawable(R.drawable.testing)
.setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, com.themontcalm.droid.lib.activity.GalleryTabActivity.class);
spec = tabHost.newTabSpec("MODIFY")
.setIndicator("", res.getDrawable(R.drawable.testing))// ,res.getDrawable(R.drawable.testing)
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, com.themontcalm.droid.lib.activity.VideoTabActivity.class);
spec = tabHost.newTabSpec("VIDEO")
.setIndicator("", res.getDrawable(R.drawable.testing))// ,
// res.getDrawable(R.drawable.testing)
.setContent(intent);
tabHost.addTab(spec);
// set tab which one you want open first time 0 or 1 or 2
tabHost.setCurrentTab(0);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v == location) {
// intent = new Intent(HomeScreen.this, LocationGB.class);
// HomeScreen.this.startActivity(intent);
} else if (v == contacts) {
intent = new Intent(HomeScreen.this, com.themontcalm.droid.lib.activity.ContactInfo.class);
HomeScreen.this.startActivity(intent);
} else if (v == explore) {
intent = new Intent(HomeScreen.this, com.themontcalm.droid.lib.activity.ExplorePropertyActivity.class);
HomeScreen.this.startActivity(intent);
}
}
}
答案 0 :(得分:2)
我怀疑清单文件中的
<activity>
标记声明是否有效 尝试并在清单文件中包含此内容:
<uses-library android:name="com.themontcalm.droid.lib.activityr"
android:required="true" />
答案 1 :(得分:0)
您应该在当前项目中声明com.themontcalm.droid.lib.activity.ReservationTab库。为此,
答案 2 :(得分:0)
确保将库项目链接为库而不是外部jar。转到项目properties > Android > Library
,然后单击添加库。
然后,当您在项目清单中定义活动时
<activity
android:label="@string/app_name"
android:name="fullpath.LibraryProjectActivity" >
</activity>