2015-01-09 42 views
-1

我在stackoverflow中提到了與這個問題有關的一些問題。但不幸的是沒有解決問題。例如,我試圖改變構建路徑中srcgen文件夾的順序。如何解決「NoClassDefFoundError」?

現在,當我運行該應用程序。我接收

01-09 09:12:36.931: E/dalvikvm(24536): Could not find class 'com.example.mqtt_designlayout_00.MainActivity$1', referenced from method com.example.mqtt_designlayout_00.MainActivity.setUpNavDrawer 

logcat輸出:

01-09 09:17:18.311: E/AndroidRuntime(24869): FATAL EXCEPTION: main 
01-09 09:17:18.311: E/AndroidRuntime(24869): Process: com.example.mqtt_designlayout_00, PID: 
24869 
01-09 09:17:18.311: E/AndroidRuntime(24869): java.lang.NoClassDefFoundError: 
com.example.mqtt_designlayout_00.MainActivity$1 

01-09 09:17:18.311: E/AndroidRuntime(24869): at 
com.example.mqtt_designlayout_00.MainActivity.setUpNavDrawer(MainActivity.java:124) 
01-09 09:17:18.311: E/AndroidRuntime(24869): at com. 
example.mqtt_designlayout_00.MainActivity.initViews(MainActivity.java:104) 
01-09 09:17:18.311: E/AndroidRuntime(24869): at 
com.example.mqtt_designlayout_00.MainActivity.onCreate(MainActivity.java:43) 
01-09 09:17:18.311: E/AndroidRuntime(24869): at 
android.app.Activity.performCreate(Activity.java:5389) 
01-09 09:17:18.311: E/AndroidRuntime(24869): at 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 

01-09 09:17:18.311: E/AndroidRuntime(24869): at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2246) 

代碼

蝕指出了該行誤差:navDrawerToggle = new ActionBarDrawerToggle(MainActivity.this, navDrawerLayout, R.string.navdrawer_opened, R.string.navdrawer_closed)

private void setUpNavDrawer() { 
    // TODO Auto-generated method stub 
    navDrawerModel = new ArrayList<NavDrawerModell>(); 
    navDrawerModel.add(new NavDrawerModell(navDrawerIcons.getResourceId(0, -1), navDrawerOptions[0], ECO_ASSISTANT_DESC)); 
    navDrawerModel.add(new NavDrawerModell(navDrawerIcons.getResourceId(1, -1), navDrawerOptions[1], DATA_LOGGER_DESC)); 
    navDrawerModel.add(new NavDrawerModell(navDrawerIcons.getResourceId(2, -1), navDrawerOptions[2], ECO_ASSISTANT_DESC)); 
    navDrawerIcons.recycle(); // to recycle the typed array. never touch the typed array after this line. 

    adapter = new NavDrawerListAdapter(getApplicationContext(), this.navDrawerModel); 
    drawerListView.setAdapter(adapter); 

    // enabling action bar app icon and behaving it as toggle button 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
    getActionBar().setHomeButtonEnabled(true); 

    mTitle = mDrawerTitle = getTitle(); 

    navDrawerToggle = new ActionBarDrawerToggle(MainActivity.this, navDrawerLayout, R.string.navdrawer_opened, R.string.navdrawer_closed) { 

     @Override 
     public void onDrawerOpened(View drawerView) { 
      // TODO Auto-generated method stub 
      super.onDrawerOpened(drawerView); 
      getActionBar().setTitle(mDrawerTitle); 
      invalidateOptionsMenu(); // calling onPrepareOptionsMenu() to hide action bar icons 
     } 

     @Override 
     public void onDrawerClosed(View drawerView) { 
      // TODO Auto-generated method stub 
      super.onDrawerClosed(drawerView); 
      getActionBar().setTitle(mTitle); 
      invalidateOptionsMenu(); // calling onPrepareOptionsMenu() to show action bar icons 
     } 
    }; 
    navDrawerLayout.setDrawerListener(navDrawerToggle); 
    drawerListView.setOnItemClickListener(new SlideMenuClickListener()); 
} 
+0

你有一個叫'1'的課嗎? – Hacketo

+0

我沒有叫「1」的課? – user2121

+0

您需要顯示代碼導致錯誤... – 2Dee

回答

1

這是引起在有是一個類文件你的代碼依賴於它,它在編譯時存在,但在運行時找不到。查找構建時間和運行時類路徑的差異。