Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除支持库(appcompat_v7)[Eclipse]_Java_Android_Eclipse - Fatal编程技术网

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

Java 如何删除支持库(appcompat_v7)[Eclipse],java,android,eclipse,Java,Android,Eclipse,我最近将eclipse和ADT插件更新为最新版本,并认识到一些重大变化。每当我创建一个新的Android应用程序项目时,就会出现一个新的appcompat_v7库,它以前没有出现过,还有一个片段_main.xml。为什么呢?为什么activity_main.xml文件不再是直接用于活动布局的首选文件,为什么appcompat库现在包含在每个项目中?我多次尝试删除eclipse/adt/sdk,并从sdk管理器中删除支持库,但都没有结果!我意识到这与actionbar有关,但问题是,每当我创建一个

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

那么,我如何才能消除这种依赖和感谢呢

为什么呢

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

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

当然欢迎您使用
activity\u main.xml
实现任何您想要的功能。谷歌当前的模板恰好希望您使用片段。谷歌的模板只是模板。有人可能会争辩说——我也激烈地争辩过——一个“BlankActivity”模板不应该做它正在做的事情。然而,除此之外,它只是一个模板

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

据推测,他们想让您从一个一致的操作栏开始,即使是在较旧的API级别上

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

我大约一周前报到了

那么,我如何删除这个依赖关系呢

步骤#1:在包资源管理器中的项目名称上单击鼠标右键,然后选择“属性”。单击左侧属性类别列表中的Android,然后在右侧向下滚动至底部:

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

步骤3:在
res/values/styles.xml
中,将
AppBaseTheme
的父级从
Theme.AppCompat.Light
更改为
@android:style/Theme.Light
。在
res/values-v11/styles.xml
中,将
AppBaseTheme
的父级从
Theme.AppCompat.Light
更改为
@android:style/Theme.Holo.Light
。在
rest/values-v14/styles.xml
中,将
AppBaseTheme
的父级从
Theme.AppCompat.Light.DarkActionBar
更改为
@android:style/Theme.Holo.Light.DarkActionBar
。请注意,这些值假设您在创建项目时选择了默认的“带暗操作栏的灯光主题”——您需要对这些说明进行轻微调整,以了解其他内容

步骤4:在
res/menu/main/xml
中,删除
xmlns:app=”http://schemas.android.com/apk/res-auto“根
元素中的
元素中的
app:showAsAction=“never”
属性

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

此时,除了清理您的项目(主菜单中的project>Clean)之外,
appcompat
内容应该从使用“BlankActivity”模板创建的项目中删除,并且“导航类型”为“None”。其他模板或“BlankActivity”模板上的导航选项可能需要更多的工作。

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

<resources>

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

    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">

    </style>

</resources>
  • 首先在project中,
    右键单击->属性->Android
    请参阅
    参考
    中的
    红色标记的appcompat
    。点击那个,然后 移除它

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

  • 编辑并更改您的活动\u 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>
    
    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        </style>
    
    </resources>
    
      <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
        </style>
    
        <style name="AppTheme" parent="AppBaseTheme">
        </style>
    
    </resources>
    
    <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>
    
    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);
    
    }
    
    }
    

  • 同样,在创建新项目时也必须这样做

    注意:如果我删除损坏的代码“如图所示”,我会收到一个错误:R无法解析为变量,导入R会产生更多错误。请尝试右键单击并选择“删除”。我注意到了同样的麻烦,您可以删除不必要的文件(fragment.xml/.java)并相应地编辑清单目标。然后确保你创建了一个“框架”,你可以将它拖放到未来适合你需要的新项目中。它看起来甚至不像是你导入的库。我没有导入它!我甚至不知道它是从哪里来的@tyczj@SQLiteNoob如果我删除Mainactivity.java中的片段并删除属于actionbar的额外代码,那么我得到的R无法解析为变量等。。这个问题让我发疯,因为我一直在为daysHello寻找解决方案,先生,谢谢您抽出时间。正如我所看到的,这个解决方案需要很多时间