如何在Android Studio中停止使用AppCompat?

时间:2015-07-10 10:46:42

标签: android android-studio

我是Android开发的新手,我尝试在Android Studio中使用Android开发指南,特别是尝试设置操作栏

我的minSdkVersion15,在build:gradle(模块:应用)中说明,所以我认为我不需要使用任何应用兼容性支持,但我的主题是它在styles.xml中表示<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">我无法在任何时候将其更改为任何Holo whitout崩溃我的应用

此外,使用此我无法使用android:showAsAction(它只是无效),而是需要使用app:showAsAction和所有Android支持库。

提前致谢。

2 个答案:

答案 0 :(得分:8)

CommonsWare提供了正确的步骤,但我仍然在努力,因为没有足够的细节让我知道该做什么(不熟悉Android Studio和Android开发)。

我发现了一篇博文,解释了这里的详细信息,它对我有用:https://mobiarch.wordpress.com/2015/04/17/removing-support-library-in-android-studio

以下是它的说法(我添加了一些额外的帮助):

从项目中打开build.gradle。找到依赖项部分。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
}

删除兼容性库的行。之后,该部分应如下所示。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

保存并关闭。

默认情况下,应用程序使用支持库中提供的主题。核心API无法使用此功能。所以我们需要解决这个问题。打开res/values/styles.xml。样式标签看起来像这样:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

将父级更改为可从核心SDK获得的主题。例如:

<style name="AppTheme" parent="android:style/Theme.Holo.Light">
    <!-- Customize your theme here. -->
</style>

将活动xml文件中的属性重命名为app:showAsActionandroid:showAsAction

Activity而不是ActionBarActivityAppCompatActivity扩展您的活动类。完成更改后,您必须在Activity上按Alt + Enter以在文件顶部添加import android.app.Activity。请参阅以下示例:

变化:

import android.support.v7.app.ActionBarActivity;

public class DisplayMessageActivity extends ActionBarActivity {
    .
    .
    .
}

为:

import android.app.Activity;

public class DisplayMessageActivity extends Activity {
    .
    .
    .
}

对于扩展ActionBarActivityAppCompatActivity

的任何其他活动也是如此

最后,执行Build | Clean ProjectBuild | Rebuild Project来排序当前的构建错误。

答案 1 :(得分:6)

步骤1:将您的主题从Theme.AppCompat

更改

第2步:从appcompat-v7模块dependencies文件中的app列表中删除build.gradle

步骤3:将所有活动更改为不从AppCompatActivityActionBarActivity继承,而是继承其他内容,例如Activity

步骤4:更改所有菜单资源,将app:替换为android:

步骤5:执行干净重建(Build&gt; Clean Project)并修复由上述四个步骤触发的任何延迟编译错误

Here is a sample project使用原生操作栏。