为什么在 gradle 构建期间找不到 AppCompatActivity?
Why is AppCompatActivity not found during gradle build?
将 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
。
为什么在构建过程中找不到 class 的任何想法?
感谢@CommonsWare 在评论中提出的建议。
正在build.gradle更新支持库版本到v22.2:
compile 'com.android.support:appcompat-v7:22.2.0'
解决了问题。
真希望 Android 文档中提到了这一点(特别是因为 ActionBarActivity
现已弃用)但是嗯...
今天的最新版本没有任何效果,直到升级 settings.gradle gradle 版本修复它(它是 2.1.3)gradle 工具链中的某些东西似乎是类路径 'com.android.tools.build:gradle:2.2.3'
将 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
。
为什么在构建过程中找不到 class 的任何想法?
感谢@CommonsWare 在评论中提出的建议。
正在build.gradle更新支持库版本到v22.2:
compile 'com.android.support:appcompat-v7:22.2.0'
解决了问题。
真希望 Android 文档中提到了这一点(特别是因为 ActionBarActivity
现已弃用)但是嗯...
今天的最新版本没有任何效果,直到升级 settings.gradle gradle 版本修复它(它是 2.1.3)gradle 工具链中的某些东西似乎是类路径 'com.android.tools.build:gradle:2.2.3'