Java 如何删除支持库(appcompat_v7)[Eclipse]
我最近将eclipse和ADT插件更新为最新版本,并认识到一些重大变化。每当我创建一个新的Android应用程序项目时,就会出现一个新的appcompat_v7库,它以前没有出现过,还有一个片段_main.xml。为什么呢?为什么activity_main.xml文件不再是直接用于活动布局的首选文件,为什么appcompat库现在包含在每个项目中?我多次尝试删除eclipse/adt/sdk,并从sdk管理器中删除支持库,但都没有结果!我意识到这与actionbar有关,但问题是,每当我创建一个新项目时,项目文件和appcompat_v7文件上都会出现一个红色感叹号,这会阻止我编译/运行应用程序,甚至有时appcompat_v7文件无法创建,我得到的唯一结果是代码损坏。这是一张图片: 那么,我如何才能消除这种依赖和感谢呢 为什么呢 因为谷歌工程师将这些东西添加到新的活动模板中,至少对于“BlankActivity” 为什么activity_main.xml文件不再是直接用于活动布局的首选文件 当然欢迎您使用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有关,但问题是,每当我创建一个
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.xml和Appcompat文件
编辑并更改您的活动\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寻找解决方案,先生,谢谢您抽出时间。正如我所看到的,这个解决方案需要很多时间