为什么Eclipse在创建新项目时会自动添加appcompat v7库支持?

Tal*_*mar 216 eclipse android android-appcompat

为什么Eclipse appcompat v7在创建新项目时会自动添加库支持?

我正在创建一个MainActivity应该扩展的简单项目Activity,但事实并非如此.Eclipse自动添加操作栏支持.

如何在没有appcompat库的情况下创建一个简单的项目?仅供参考,我已经下载了最新版本的ADT,最近更新了所有内容.我使用的是Window 7 x64.

在此输入图像描述

Hal*_*oum 105

如Android的支持库概述中所述,默认情况下包含支持库被认为是一种很好的做法,因为设备的多样性以及不同版本的Android(以及提供的API)之间存在碎片.

这就是为什么Eclipse中包含的Android 代码模板工具Android Development Tools (ADT)通过默认集成它们的原因.

我注意到你的目标API 15是你的样本,但是miminum需要你的包的SDK,API 10兼容性库可以提供大量向后兼容的API.一个例子是在运行该系统的旧版本的设备Fragment API上使用append on API 11 (Android 3.0 Honeycomb)的能力.

还应注意,默认情况下,您可以停用自动包含支持库.

  • 那就是BS.在过去的两个月里,我一直在API级别10使用eclipse,它从未导入兼容性库或片段布局,直到这个怪异的kitkat api出现.在这一点上,阻止它出现的最简单方法似乎不是自动创建一个Activity.因此,您必须取消"创建活动"并在创建项目时创建自己的活动. (54认同)
  • 是的,重点是,由于上述原因,图书馆将始终包括在内. (2认同)
  • Jeez google !!! 退出修补,修补和修补,所有这些支持库错误和版本正在驱使我们疯狂. (2认同)

son*_*hir 59

创建一个新的Android Application Project,并取消 Create activity在步骤二(配置项目).


Ada*_*zyk 22

为什么我的eclipse会在创建新项目时自动添加appcompat v7库支持

因为您的目标SDK设置为15,默认情况下操作栏处于启用状态,并且您的最低支持SDK设置为10.操作栏出现在11中,因此您需要一个支持库,Eclipse会为您添加它.参考.

您可以在项目属性的构建路径中配置项目库.

  • 如果我将最小sdk配置为12或13,我仍然会从eclipse中获得相同的行为... (12认同)

Luf*_*ffy 18

Eclipse将自动创建奇巧的API appcompat_v7.Because推出它本身会自动添加appcompat_v7fragment_main.xml.

解决这些问题的最佳方法:

  1. 首先在项目中,Right click->properties->Android.你可以看到red marked appcompat放入Reference.单击它并删除它.然后勾选正确的目标名称Project Build Target.

  2. 删除在Eclipse中创建的fragment_main.xmlAppcompat文件.

  3. 编辑和更改您的activity_main.xml,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
    
    </RelativeLayout>
    
    Run Code Online (Sandbox Code Playgroud)
  4. res/values/styles.xml中:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
    
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
    
        </style>
    
    </resources>
    
    Run Code Online (Sandbox Code Playgroud)
  5. res/values-v11/styles.xml中,您必须更改如下:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        </style>
    
    </resources>
    
    Run Code Online (Sandbox Code Playgroud)
  6. res/values-v14/styles.xml中,您必须更改如下:

      <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
        </style>
    
        <style name="AppTheme" parent="AppBaseTheme">
        </style>
    
    </resources>
    
    Run Code Online (Sandbox Code Playgroud)
  7. 像这样更改menu/main.xml:

    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <item
            android:id="@+id/action_settings"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="@string/action_settings"/>
    
    </menu>
    
    Run Code Online (Sandbox Code Playgroud)
  8. 最后更改您的MainActivity.java,如下所示:

    import android.app.Activity;
    import android.os.Bundle;
    
    
    public class MainActivity extends Activity {
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    }
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

LikeWise你必须这样做才能创建一个新项目

  • 他们在想什么?Eclipse不应该为此提供一键式解决方案吗? (2认同)
  • 它有效,谢谢......但是有没有更简单的解决方案? (2认同)

Ahm*_*mad 8

它包含在内,因为您的最低SDK版本设置为10.它ActionBar是在API 11中引入的.Eclipse自动添加它,以便您的应用程序在您支持的所有Android版本的整个范围内看起来更加一致.