[英]Android ClassNotFoundException using actionbarsherlock library
嘗試在模擬器上運行項目時,我不斷收到classnotfoundexception。 在發布此問題之前,我已經環顧四周,我曾嘗試將庫添加到構建路徑,清理/構建項目,但仍未解決問題。
該項目是使用開源日歷項目構建的。 所以這個名字很奇怪,但是對構建沒有任何影響。
這是LogCat:
09-03 12:37:36.990: E/Trace(2272): error opening trace file: No such file or directory (2)
09-03 12:37:37.439: W/dalvikvm(2272): Unable to resolve superclass of Lcom/squareup/timessquare/sample/DashboardActivity; (453)
09-03 12:37:37.482: W/dalvikvm(2272): Link of class 'Lcom/squareup/timessquare/sample/DashboardActivity;' failed
09-03 12:37:37.482: D/AndroidRuntime(2272): Shutting down VM
09-03 12:37:37.482: W/dalvikvm(2272): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
09-03 12:37:37.540: E/AndroidRuntime(2272): FATAL EXCEPTION: main
09-03 12:37:37.540: E/AndroidRuntime(2272): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.squareup.timessquare.sample/com.squareup.timessquare.sample.DashboardActivity}: java.lang.ClassNotFoundException: com.squareup.timessquare.sample.DashboardActivity
09-03 12:37:37.540: E/AndroidRuntime(2272): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
09-03 12:37:37.540: E/AndroidRuntime(2272): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
09-03 12:37:37.540: E/AndroidRuntime(2272): at android.app.ActivityThread.access$600(ActivityThread.java:130)
09-03 12:37:37.540: E/AndroidRuntime(2272): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
09-03 12:37:37.540: E/AndroidRuntime(2272): at android.os.Handler.dispatchMessage(Handler.java:99)
09-03 12:37:37.540: E/AndroidRuntime(2272): at android.os.Looper.loop(Looper.java:137)
09-03 12:37:37.540: E/AndroidRuntime(2272): at android.app.ActivityThread.main(ActivityThread.java:4745)
09-03 12:37:37.540: E/AndroidRuntime(2272): at java.lang.reflect.Method.invokeNative(Native Method)
09-03 12:37:37.540: E/AndroidRuntime(2272): at java.lang.reflect.Method.invoke(Method.java:511)
09-03 12:37:37.540: E/AndroidRuntime(2272): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-03 12:37:37.540: E/AndroidRuntime(2272): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-03 12:37:37.540: E/AndroidRuntime(2272): at dalvik.system.NativeStart.main(Native Method)
09-03 12:37:37.540: E/AndroidRuntime(2272): Caused by: java.lang.ClassNotFoundException: com.squareup.timessquare.sample.DashboardActivity
09-03 12:37:37.540: E/AndroidRuntime(2272): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
09-03 12:37:37.540: E/AndroidRuntime(2272): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
09-03 12:37:37.540: E/AndroidRuntime(2272): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
09-03 12:37:37.540: E/AndroidRuntime(2272): at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
09-03 12:37:37.540: E/AndroidRuntime(2272): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
這是清單中聲明的類:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.squareup.timessquare.sample"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="17" />
<application
android:label="@string/app_name"
android:icon="@drawable/supporticon"
android:debuggable="true"
android:supportsRtl="true">
<activity
android:name=".DashboardActivity"
android:label="@string/app_name"
android:configChanges="orientation|screenSize|keyboardHidden"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
這是課程內容:
public class DashboardActivity extends SherlockFragmentActivity {
ActionBar mActionBar;
ViewPager mPager;
Tab tab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dashboard);
// Activate the navigation mode tabs
mActionBar = getSupportActionBar();
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Locate the view pager in dashboard.xml
mPager = (ViewPager) findViewById(R.id.pager);
// Activate the fragment manager
FragmentManager fm = getSupportFragmentManager();
// Capture view pager swipes
ViewPager.SimpleOnPageChangeListener ViewPagerListener = new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
// Find the view pager position
mActionBar.setSelectedNavigationItem(position);
}
};
mPager.setOnPageChangeListener(ViewPagerListener);
// Locate the adapter class
ViewPagerAdapter viewpageradapter = new ViewPagerAdapter(fm);
// Set the view pager adapter in ViewPager
mPager.setAdapter(viewpageradapter);
// Capture the button clicks
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// Pass the position on tab click to view pager
mPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
};
// Create the first tab
tab = mActionBar.newTab().setText("Support Tab")
.setTabListener(tabListener);
mActionBar.addTab(tab);
// Create the second tab
tab = mActionBar.newTab().setText("Students Tab")
.setTabListener(tabListener);
mActionBar.addTab(tab);
}
}
我能想到的唯一問題是,當我右鍵單擊我的項目>項目屬性> Android時,actionbarsherlock參考旁邊有一個紅叉。 即使在使用該庫的類中沒有錯誤,我也不知道這是否與它有關。
任何幫助,將不勝感激,謝謝。
我能想到的唯一問題是,當我右鍵單擊我的項目>項目屬性> Android時,actionbarsherlock參考旁邊有一個紅叉。 即使在使用該庫的類中沒有錯誤,我也不知道這是否與它有關。
是的,這肯定與它有關。 這意味着您的項目無法找到jar文件或lib項目的位置。
在項目屬性頁面的該條目上,按編輯按鈕,然后再次導航到jar文件/ lib項目文件夾。 只有當紅色x變成綠色復選標記時,您才能正確運行程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.