Android:NoSuchFieldError指的是appcompat_v7缺少R $ styleable.Theme_windowActionBar

时间:2014-11-03 17:29:09

标签: android android-actionbar runtime-error android-appcompat

我对Android开发有点陌生,我尝试使用我的应用程序的一般结构。 现在我必须显示启动活动 3秒,然后转到我的主要活动

因为在我的 S.A。中,我不需要任何ActionBar,我认为不让我的类扩展ActionBarActivity,而只使用Activity。然后我创建了一个 Intent 来启动我的 M.A。

这些活动仍然没有任何实际功能。

这是我的Splash活动:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class SplashActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        Intent changeActivity = new Intent(SplashActivity.this, MainActivity.class);
        SplashActivity.this.startActivity(changeActivity);
    }

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
    }
}

这是我的主要活动:

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

一切看起来都不错但是每当我尝试在我的真实设备上运行应用程序时,这就是我得到的:

  

11-03 17:46:47.002:E / AndroidRuntime(30179):致命异乎寻常:主

     

11-03 17:46:47.002:E / AndroidRuntime(30179):java.lang.NoSuchFieldError:android.support.v7.appcompat.R $ styleable.Theme_windowActionBar

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:145)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:139)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):at com.android.adiuvapp_verbalatina.MainActivity.onCreate(MainActivity.java:12)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.app.Activity.performCreate(Activity.java:5188)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.app.ActivityThread.access $ 700(ActivityThread.java:140)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1237)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.os.Handler.dispatchMessage(Handler.java:99)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.os.Looper.loop(Looper.java:137)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):在android.app.ActivityThread.main(ActivityThread.java:4921)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):at java.lang.reflect.Method.invokeNative(Native Method)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):at java.lang.reflect.Method.invoke(Method.java:511)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1038)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)

     

11-03 17:46:47.002:E / AndroidRuntime(30179):at dalvik.system.NativeStart.main(Native Method)

我已经在网上搜索了几个小时,但我的问题没有得到很好的答案:我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

使用extends Activity代替extends ActionBarActivity,错误将被修复。