当前位置: 首页 > 知识库问答 >
问题:

如何删除支持库(appcompat_v7) [Eclipse]

路伟
2023-03-14

最近,我将我的eclipse和ADT插件更新为最新版本,并认识到一些重大变化。每当我创建新的Android应用程序项目时,都会出现一个新的appcompat_v7库,它以前不存在,而且还有一个fragment_main。为什么?为什么是activity_main。xml文件不再是直接用于活动布局的首选文件,为什么appcompat库现在包含在每个项目中?我多次尝试删除eclipse/adt/sdk,并从sdk管理器中删除支持库,但没有结果!我意识到这与actionbar有关,但问题是,每当我创建一个新项目时,项目文件和appcompat_v7文件上都会出现一个红色感叹号,这会阻止我编译/运行应用程序,甚至有时候appcompat-v7文件不会创建,我唯一得到的是损坏的代码http://i.stack.imgur.com/XJMfW.png

所以我怎么能删除这个依赖关系和感谢

共有2个答案

盛跃
2023-03-14

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

>

  • 首先在项目中,右键单击-

    删除Eclipse中创建的fragment_main.xml和Appcompat文件

    编辑并更改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>
    

    在res/values/styles.xml中:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
    
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
    
        </style>
    
    </resources>
    

    在res/value es-v11/styles.xml中,您必须像这样更改:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        </style>
    
    </resources>
    

    在res/value es-v14/styles.xml中,您必须像这样更改:

      <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
        </style>
    
        <style name="AppTheme" parent="AppBaseTheme">
        </style>
    
    </resources>
    

    更改您的菜单/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>
    

    最后,改变你的主要活动。像这样的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);
    
    }
    
    }
    

    同样地,你必须为创建一个新的项目这样做

  • 盖夕
    2023-03-14

    那是为什么呢?

    因为谷歌的工程师将这些东西添加到新活动模板中,至少对于“空白活动”是如此。

    为什么activity_main.xml文件不再是活动布局的首选文件

    当然欢迎您使用activity_main.xml来做任何您想要的事情。碰巧Google当前的模板希望您使用片段。Google的模板只是模板。有人可以争辩——我强烈地争辩过——“空白活动”模板不应该做它正在做的事情。然而,除此之外,它只是一个模板。

    为什么现在每个项目中都包含appcompat库?

    据推测,他们希望从一致的操作栏开始,即使在较旧的API级别上也是如此。

    我意识到它与操作栏有关,但问题是,每当我创建新项目时,项目的文件和appcompat_v7文件上都会出现一个红色的感叹号,这阻止了我编译/运行应用程序,甚至有时appcompat_v7文件没有创建,我唯一得到的是损坏的代码

    大约一周前,我报告了这个问题。

    那么我如何才能消除这种依赖

    步骤1:在包浏览器中右键单击项目名称,并选择Properties。在左侧的房产类别列表中点击Android,并在右侧向下滚动至底部:

    步骤#2:在现在将在属性对话框中看到的附加库项目列表中,您可能会看到一个类似于在上面的屏幕截图中看到的“appcompat_v7_6”条目。您的最后一个数字将有所不同,可能是您的数字是红色的X而不是绿色的复选标记。无论如何,如果列表中有“appcompat_v7_NNN”的条目,请单击该条目,然后单击列表右侧的“删除”按钮。然后,单击 OK 按钮关闭对话框。

    第3步:在< code > RES/values/styles . XML 中,从< code>Theme更改< code>AppBaseTheme的父级。AppCompat.Light到< code>@android:style/Theme。光。在< code > RES/values-v11/styles . XML 中,从< code>Theme更改< code>AppBaseTheme的父级。AppCompat.Light到< code>@android:style/Theme。赫萝.莱特。在< code > rest/values-v 14/styles . XML 中,从< code>Theme更改< code>AppBaseTheme的父级。app compat . light . darkactionbar 到< code>@android:style/Theme。赫萝. Light.DarkActionBar。请注意,这些值假设您在创建项目时选择了默认的“浅色主题和深色操作栏”——您将需要对这些说明做一些细微的调整。

    步骤#4:在<code>res/menu/main/xml<code>中,删除<code>xmlns:app=“http://schemas.android.com/apk/res-auto“从根目录

    步骤#5:在您的活动中(例如,Mainactive),将活动的父类更改为ActionBaractive之外的其他类——Fragmentactive将是一个不错的选择,以尽量减少您必须立即进行的其他更改的数量。此外,清理您的导入(例如,Ctrl-Shift-O)。

    此时,除了清理您的项目(项目

     类似资料:
    • 问题内容: 这在Microsoft SQL Server的T-SQL上是有效的语法,但在SQLite中则无效,在SQLite中是否有相同的替代语法? 问题答案: 通常,将整个联接移到一个子查询中,该子查询查找要删除的行的主键: 如果您有复合主键,则可以使用rowid代替: 如果您有复合主键,并且将该表创建为WITHOUT ROWID 表,则必须将联接重写为相关子查询:

    • 我在Unity中有项目,使用Mapbox, Mapbox包含以下支持库:support-v4-25.1.0.aar 此库以.aar文件的形式提供,而不是作为gradle命令 尝试构建项目时,我收到此错误: 无法确定任务的依赖项:启动程序:lintVitalRelease。< br >无法解析配置的所有项目:launcher:debuguntimeclass path。< br >无法转换支持-v4

    • 问题内容: 我正在使用Spring JPA进行数据库访问。我能够找到诸如findByName和countByName之类的示例,对于这些示例,我不必编写任何方法实现。我希望找到一些根据某些条件删除一组记录的示例。 Spring JPA是否支持类似于deleteByName的删除?任何指针表示赞赏。 问题答案: 不建议使用的答案(Spring Data JPA <= 1.6.x): 救援的注释。但是

    • 作为测试的一部分,我一直在尝试创建一个用户,然后将其删除,但我不断收到相同的错误组织。冬眠hql。内部的QueryExecutionRequestException:即使在我的存储库和控制器中不断更改代码之后,DML操作也不受支持。 这是我的存储库中的代码: 这是我的控制器中的代码:

    • 我有Java控制器: 并遇到以下问题:警告14068--[nio-8080-exec-3].w.s.m.s.defaultHandlerExceptionResolver:Resolved[org.springframework.web.httpRequestMethodNotSupportedException:Request method'DELETE'not support]它发生在我发送删

    • 我正在尝试使用SwipeToDismissUndoList库在< code>ListView中实现滑动删除,该库扩展了Roman Nurik的SwipeToDismiss示例。 我的问题是在删除动画。由于< code>ListView由< code>CursorAdapter支持,因此动画会在< code>onAnimationEnd中触发< code>onDismiss回调,但这意味着在< co