为什么在gradle构建期间找不到AppCompatActivity?

时间:2015-08-01 16:29:56

标签: android android-gradle android-support-library

将v7 appcompat支持库添加到我的build.gradle中,我可以毫无问题地使用ActionBarActivity。但如果我将ActionBarActivity替换为AppCompatActivity,我会得到:

./gradlew assembleDebug
:preBuild
:compileDebugNdk UP-TO-DATE
:preDebugBuild
:checkDebugManifest
:preReleaseBuild
:prepareComAndroidSupportAppcompatV72200Library UP-TO-DATE
:prepareComAndroidSupportSupportV42200Library UP-TO-DATE
:prepareDebugDependencies
:compileDebugAidl UP-TO-DATE
:compileDebugRenderscript UP-TO-DATE
:generateDebugBuildConfig UP-TO-DATE
:generateDebugAssets UP-TO-DATE
:mergeDebugAssets UP-TO-DATE
:generateDebugResValues UP-TO-DATE
:generateDebugResources UP-TO-DATE
:mergeDebugResources UP-TO-DATE
:processDebugManifest UP-TO-DATE
:processDebugResources UP-TO-DATE
:generateDebugSources UP-TO-DATE
:compileDebugJava
MainActivity.java:4: error: cannot find symbol
import android.support.v7.app.AppCompatActivity;

MainActivity.java:

package app.test.v7.support;

// replacing ActionBarActivity with AppCompatActivity fails.
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;

// replacing ActionBarActivity with AppCompatActivity fails.
public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

}

清单有:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="21"  />

的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "22.0.0"

    defaultConfig {
    targetSdkVersion 21
    }
}

dependencies {
  compile 'com.android.support:support-v4:22.0.0'
  compile 'com.android.support:appcompat-v7:22.0.0'
}

Android开发者文档表明ActionBarActivity本身来自AppCompatActivity,建议使用AppCompatActivity代替(现已弃用)ActionBarActivity

在构建过程中无法找到类的任何想法?

2 个答案:

答案 0 :(得分:5)

感谢@CommonsWare对评论中的建议。

在build.gradle中将支持库版本更新为v22.2:

compile 'com.android.support:appcompat-v7:22.2.0'

排序问题。

真的希望Android文档中提到这一点(特别是因为ActionBarActivity现已弃用)但是meh ......

答案 1 :(得分:0)

使用今天的最新版本没有任何效果,直到升级settings.gradle gradle版本修复它(它是2.1.3)gradle工具链中的东西似乎是classpath&#39; com.android.tools.build:gradle:2.2。 3&#39;