Android java.lang.classnotfound异常

Android java.lang.classnotfound异常,java,android,android-studio,Java,Android,Android Studio,我有一个没有错误的项目,但在运行时应用程序崩溃 日志: android.support.v7.app.ActionBarActivityDelegate.getDrawerToggleDelegate 03-05 22:42:23.982 29908-29908/ly.priv.mobile E/dalvikvm﹕ Could not find class 'android.support.v7.app.ActionBarActivityDelegate$ActionBarDrawableTo

我有一个没有错误的项目,但在运行时应用程序崩溃

日志:

android.support.v7.app.ActionBarActivityDelegate.getDrawerToggleDelegate
03-05 22:42:23.982  29908-29908/ly.priv.mobile E/dalvikvm﹕ Could not find class 'android.support.v7.app.ActionBarActivityDelegate$ActionBarDrawableToggleImpl', referenced from method android.support.v7.app.ActionBarActivityDelegate.getV7DrawerToggleDelegate

通过项目结构,我已经在依赖项中包含了
androidcompatv7
。但是错误仍然存在。

这是我的登录活动,我按下按钮转到下一页main activity.java,它的xml包含android support v7的依赖项

------activity_main.xml----




包ly.priv.mobile.gui.activities;
导入android.content.Intent;
导入android.content.res.Configuration;
导入android.net.Uri;
导入android.os.Bundle;
导入android.support.v4.app.FragmentTransaction;
导入android.support.v4.widget.DrawerLayout;
导入android.support.v7.app.ActionBarActivity;
导入android.support.v7.app.ActionBarDrawerToggle;
导入android.support.v7.widget.Toolbar;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ListView;
导入com.joannazapata.android.iconify.IconDrawable;
导入com.joannazapata.android.iconify.iconify;
导入java.util.ArrayList;
导入ly.priv.mobile.gmailinkGrabberService;
进口私人移动电话;
导入ly.priv.mobile.grabbers.facebookgrabbers服务;
导入ly.priv.mobile.grabbers.twitterGrabbers服务;
导入ly.priv.mobile.gui.drawer.Header;
导入ly.priv.mobile.gui.drawer.navDrawerRadapter;
导入ly.priv.mobile.gui.drawer.NavDrawerItem;
导入ly.priv.mobile.gui.drawer.NavDrawerItemType;
导入ly.priv.mobile.gui.drawer.privly应用程序;
导入ly.priv.mobile.gui.drawer.ReadingApplication;
导入ly.priv.mobile.gui.fragments.PrivlyApplicationFragment;
导入ly.priv.mobile.utils.constantValue;
导入ly.priv.mobile.utils.Utilities;
公共类MainActivity扩展了android.support.v7.app.ActionBarActivity{
私有最终字符串标记=getClass().getSimpleName();
Uri;
抽屉布局mDrawerLayout;
ListView mDrawerList;
android.support.v7.app.ActionBarDrawerToggle操作BarDrawerToggle;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
mDrawerList=(ListView)findViewById(R.id.left\u抽屉);
actionBarDrawerToggle=新建actionBarDrawerToggle(此,mDrawerLayout,工具栏,
R.string.drawer\u打开,
右弦抽屉(U关闭){
公共无效onDrawerClosed(视图){
super.onDrawerClosed(视图);
}
打开图纸上的公共空白(视图抽屉视图){
super.onDrawerOpened(抽屉视图);
}
};
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mDrawerLayout.setDrawerListener(actionBarDrawerToggle);
initNavigationDrawer();
uri=getIntent().getData();
if(uri!=null){
getSupportFragmentManager().beginTransaction()
.add(R.id.container,new TwitterGrabberService()).commit();
}否则{
如果(savedInstanceState==null){
PrivillyApplicationFragment messageFragment=新PrivillyApplicationFragment();
Bundle=新Bundle();
bundle.putString(constantValue.privily\u APPLICATION\u KEY,privillyapplication.MESSAGE\u APP);
messageFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction()
.add(R.id.container,messageFragment).addToBackStack(null)
.commit();
}
}
}
私有void initNavigationDrawer(){
Header PrivillyApplicationHeader=新标题(“Privilly应用程序”);
NavDroperItem headerNavItem=新的NavDroperItem(NavDroperItemType.HEADER,PrivillyApplication HEADER);
PrivilyApplication messageApplication=新的PrivilyApplication(PrivilyApplication.MESSAGE_应用程序,实用程序。getFilePathURLFromAppName(PrivilyApplication.MESSAGE_应用程序),新的IconDrawable(这个,Iconify.IconValue.fa_信封_正方形)。colorRes(R.color.gray));
NavDrawerItem MessageNaviItem=新的NavDrawerItem(NavDrawerItemType.Privily_应用程序,messageApplication);
PrivilyApplication plainPostApplication=新的PrivilyApplication(PrivilyApplication.PLAINPOST_应用程序,实用程序。getFilePathURLFromAppName(PrivilyApplication.MESSAGE_应用程序),新的IconDrawable(this,Iconify.IconValue.fa_信封_square)。colorRes(R.color.gray));
NavDrawerItem PlainPostNaviItem=新的NavDrawerItem(NavDrawerItemType.Privily_应用程序,plainPostApplication);
PrivilyApplication historyApplication=新建PrivilyApplication(PrivilyApplication.HISTORY_应用程序,实用程序。getFilePathURLFromAppName(PrivilyApplication.HISTORY_应用程序),新建IconDrawable(this,Iconify.IconValue.fa_list_alt)。colorRes(R.color.gray));
NavDrawerItem historyNavItem=新的NavDrawerItem(NavDrawerItemType.Privily_应用程序,historyApplication);
Header webConnectionsHeader=新的Header(“私下连接”);
NavDrawerItem webConnectionHeaderItem=新的NavDrawerItem(NavDrawerItemType.HEADER,webConnectionsHeader);
ReadingApplication facebookReadingApplication=新的ReadingApplication(ReadingApplication.FACEBOOK,新的ICondravable(这个,Iconify.IconValue.fa_FACEBOOK_square).colorRes(R.color.gray));
NavDrawerItem FaceBookNaviItem=新的NavDrawerItem(NavDrawerItemType.READING\u应用程序,facebookReadingApplication);
ReadingApplication twitterReadingApplication=新的ReadingApplication(ReadingApplication.TWITTER,新的IconDrawable(这个,Iconify.IconValue.fa_TWITTER_square.colorRes(R.color.gray));
NavDrawerItem TwitterNaviItem=新的NavDrawerItem(NavDrawerItemType.READING\u应用程序,twitterReadingApplication);
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/privlyBackgroundColor">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/privlyDark"
        android:minHeight="?attr/actionBarSize"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar" />
</RelativeLayout>

<ListView
    android:id="@+id/left_drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@color/privlyBackgroundColor"
    android:choiceMode="singleChoice"
    android:clipToPadding="false"
    android:dividerHeight="1dp" />
package ly.priv.mobile.gui.activities;

import android.content.Intent;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import com.joanzapata.android.iconify.IconDrawable;
import com.joanzapata.android.iconify.Iconify;

import java.util.ArrayList;

import ly.priv.mobile.GmailLinkGrabberService;
import ly.priv.mobile.R;
import ly.priv.mobile.grabbers.FaceBookGrabberService;
import ly.priv.mobile.grabbers.TwitterGrabberService;
import ly.priv.mobile.gui.drawer.Header;
import ly.priv.mobile.gui.drawer.NavDrawerAdapter;
import ly.priv.mobile.gui.drawer.NavDrawerItem;
import ly.priv.mobile.gui.drawer.NavDrawerItemType;
import ly.priv.mobile.gui.drawer.PrivlyApplication;
import ly.priv.mobile.gui.drawer.ReadingApplication;
import ly.priv.mobile.gui.fragments.PrivlyApplicationFragment;
import ly.priv.mobile.utils.ConstantValues;
import ly.priv.mobile.utils.Utilities;

public class MainActivity extends android.support.v7.app.ActionBarActivity {
    private final String TAG = getClass().getSimpleName();
    Uri uri;
    DrawerLayout mDrawerLayout;
    ListView mDrawerList;
    android.support.v7.app.ActionBarDrawerToggle actionBarDrawerToggle;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.left_drawer);
        actionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar,
                R.string.drawer_open,
                R.string.drawer_close) {
            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);
            }

            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
            }
        };
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        mDrawerLayout.setDrawerListener(actionBarDrawerToggle);
        initNavigationDrawer();
        uri = getIntent().getData();
        if (uri != null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new TwitterGrabberService()).commit();
        } else {
            if (savedInstanceState == null) {
                PrivlyApplicationFragment messageFragment = new PrivlyApplicationFragment();
                Bundle bundle = new Bundle();
                bundle.putString(ConstantValues.PRIVLY_APPLICATION_KEY, PrivlyApplication.MESSAGE_APP);
                messageFragment.setArguments(bundle);
                getSupportFragmentManager().beginTransaction()
                        .add(R.id.container, messageFragment).addToBackStack(null)
                        .commit();
            }
        }
    }

    private void initNavigationDrawer() {

        Header privlyApplicationsHeader = new Header("Privly Applications");
        NavDrawerItem headerNavItem = new NavDrawerItem(NavDrawerItemType.HEADER, privlyApplicationsHeader);

        PrivlyApplication messageApplication = new PrivlyApplication(PrivlyApplication.MESSAGE_APP, Utilities.getFilePathURLFromAppName(PrivlyApplication.MESSAGE_APP), new IconDrawable(this, Iconify.IconValue.fa_envelope_square).colorRes(R.color.gray));
        NavDrawerItem messageNavItem = new NavDrawerItem(NavDrawerItemType.PRIVLY_APPLICATION, messageApplication);

        PrivlyApplication plainPostApplication = new PrivlyApplication(PrivlyApplication.PLAINPOST_APP, Utilities.getFilePathURLFromAppName(PrivlyApplication.MESSAGE_APP), new IconDrawable(this, Iconify.IconValue.fa_envelope_square).colorRes(R.color.gray));
        NavDrawerItem plainPostNavItem = new NavDrawerItem(NavDrawerItemType.PRIVLY_APPLICATION, plainPostApplication);

        PrivlyApplication historyApplication = new PrivlyApplication(PrivlyApplication.HISTORY_APP, Utilities.getFilePathURLFromAppName(PrivlyApplication.HISTORY_APP), new IconDrawable(this, Iconify.IconValue.fa_list_alt).colorRes(R.color.gray));
        NavDrawerItem historyNavItem = new NavDrawerItem(NavDrawerItemType.PRIVLY_APPLICATION, historyApplication);

        Header webConnectionsHeader = new Header("Connect Privly with");
        NavDrawerItem webConnectionHeaderItem = new NavDrawerItem(NavDrawerItemType.HEADER, webConnectionsHeader);

        ReadingApplication facebookReadingApplication = new ReadingApplication(ReadingApplication.FACEBOOK, new IconDrawable(this, Iconify.IconValue.fa_facebook_square).colorRes(R.color.gray));
        NavDrawerItem facebookNavItem = new NavDrawerItem(NavDrawerItemType.READING_APPLICATION, facebookReadingApplication);

        ReadingApplication twitterReadingApplication = new ReadingApplication(ReadingApplication.TWITTER, new IconDrawable(this, Iconify.IconValue.fa_twitter_square).colorRes(R.color.gray));
        NavDrawerItem twitterNavItem = new NavDrawerItem(NavDrawerItemType.READING_APPLICATION, twitterReadingApplication);

        ReadingApplication gmailReadingApplication = new ReadingApplication(ReadingApplication.GMAIL, new IconDrawable(this, Iconify.IconValue.fa_envelope_square).colorRes(R.color.gray));
        NavDrawerItem gmailNavItem = new NavDrawerItem(NavDrawerItemType.READING_APPLICATION, gmailReadingApplication);

        final ArrayList<NavDrawerItem> navDrawerItems = new ArrayList<>();
        navDrawerItems.add(headerNavItem);
        navDrawerItems.add(messageNavItem);
        navDrawerItems.add(plainPostNavItem);
        navDrawerItems.add(historyNavItem);
        navDrawerItems.add(webConnectionHeaderItem);
        navDrawerItems.add(facebookNavItem);
        navDrawerItems.add(twitterNavItem);
        navDrawerItems.add(gmailNavItem);
        NavDrawerAdapter navDrawerAdapter = new NavDrawerAdapter(this, navDrawerItems);
        mDrawerList.setAdapter(navDrawerAdapter);

        mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                NavDrawerItem navDrawerItem = navDrawerItems.get(position);
                switch (navDrawerItem.getType()) {
                    case NavDrawerItemType.PRIVLY_APPLICATION:
                        mDrawerLayout.closeDrawers();
                        PrivlyApplicationFragment privlyApplicationFragment = new PrivlyApplicationFragment();
                        Bundle bundle = new Bundle();
                        bundle.putString(ConstantValues.PRIVLY_APPLICATION_KEY, ((PrivlyApplication) navDrawerItem.getObject()).getName());
                        privlyApplicationFragment.setArguments(bundle);
                        getSupportFragmentManager().beginTransaction()
                                .add(R.id.container, privlyApplicationFragment)
                                .commit();
                        break;
                    case NavDrawerItemType.READING_APPLICATION:
                        mDrawerLayout.closeDrawers();
                        FragmentTransaction transaction = getSupportFragmentManager()
                                .beginTransaction();
                        switch (((ReadingApplication) navDrawerItem.getObject()).getName()) {
                            case ReadingApplication.FACEBOOK:
                                FaceBookGrabberService fbGrabber = new FaceBookGrabberService();
                                transaction.add(R.id.container, fbGrabber).addToBackStack(null);
                                transaction.commit();
                                break;
                            case ReadingApplication.TWITTER:
                                TwitterGrabberService tweetGrabber = new TwitterGrabberService();
                                transaction.add(R.id.container, tweetGrabber, "Twitter").addToBackStack(null);
                                transaction.commit();
                                break;
                            case ReadingApplication.GMAIL:
                                GmailLinkGrabberService gmailGrabber = new GmailLinkGrabberService();
                                transaction.add(R.id.container, gmailGrabber).addToBackStack(null);
                                transaction.commit();
                                break;
                        }
                        break;
                }
            }
        });
    }


    @Override
    public void onBackPressed() {
        if (getSupportFragmentManager().findFragmentById(R.id.container) instanceof PrivlyApplicationFragment) {
            finish();
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        actionBarDrawerToggle.syncState();
    }

    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        actionBarDrawerToggle.onConfigurationChanged(newConfig);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_layout_home, menu);
        menu.findItem(R.id.settings).setIcon(
                new IconDrawable(this, Iconify.IconValue.fa_gear)
                        .colorRes(R.color.gray)
                        .actionBarSize());
        menu.findItem(R.id.logout).setIcon(
                new IconDrawable(this, Iconify.IconValue.fa_sign_out)
                        .colorRes(R.color.gray)
                        .actionBarSize());
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(final MenuItem item) {
        // Pass the event to ActionBarDrawerToggle, if it returns
        // true, then it has handled the app icon touch event
        if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        } else {
            switch (item.getItemId()) {
                case R.id.settings:
                    Intent intent = new Intent(MainActivity.this, SettingsActivity.class);
                    startActivity(intent);
                    break;
            }
        }
        // Handle your other action bar items...
        return super.onOptionsItemSelected(item);
    }

    /**
     * The twitter api returns the login data in form of an intent which can be
     * captured by the activity using onNewIntent method. When the intent is
     * received, the MainActivity sends the intent to TwitterLinkGrabberService
     * through the NewIntentListener interface.
     */
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        NewIntentListener newIntentListener = (NewIntentListener) this
                .getSupportFragmentManager().findFragmentByTag("Twitter");
        newIntentListener.onNewIntentRead(intent);
    }

    public interface NewIntentListener {
        public void onNewIntentRead(Intent intent);
    }
}

    enter code here