我最近将我的eclipse和ADT插件更新到最新版本,并认识到了一些重大变化。每当我创建一个新的Android应用程序项目时,都会出现一个之前不存在的新appcompat_v7库以及一个fragment_main.xml。这是为什么?为什么activity_main.xml文件不再是活动布局的首选,为什么appcompat库现在包含在每个项目中?我试图多次删除eclipse / adt / sdk并从sdk管理器中删除支持库但没有结果!我意识到它与actionbar有关但问题是每当我创建一个新项目时,项目的文件和appcompat_v7文件都会出现红色感叹号,这会阻止我编译/运行应用程序,甚至有时appcompat_v7文件也没有创造,我得到的唯一的东西是损坏的代码这里是一张图片:http://i.stack.imgur.com/XJMfW.png
所以如何删除此依赖关系并感谢
答案 0 :(得分:45)
为什么?
因为Google工程师将这些内容添加到新活动模板中,至少对于" BlankActivity"。
为什么activity_main.xml文件不再是活动布局的首选
当然欢迎您使用activity_main.xml
来表达您想要的任何内容。碰巧Google的当前模板要求您使用片段。 Google的模板只是模板。人们可以争辩 - 而且我强烈地认为 - " BlankActivity"模板不应该做它正在做的事情。但是,除此之外,它只是一个模板。
为什么appcompat库现在包含在每个项目中?
据推测,他们希望通过一致的操作栏启动您,即使在较旧的API级别上也是如此。
我意识到它与actionbar有关但问题是每当我创建一个新项目时,项目文件和appcompat_v7文件都会出现红色感叹号,这会阻止我编译/运行应用程序甚至有时appcompat_v7文件不会创建,我唯一得到的是损坏的代码
我大约一周前报道了this issue。
所以如何删除此依赖
步骤1:在Package Explorer中右键单击项目名称,然后选择Properties。点击左侧属性类别列表中的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
。请注意,这些值假设您选择了默认的" Light主题与暗动作栏"当您创建项目时 - 您需要对其他任何指令稍作调整。
步骤4:在res/menu/main/xml
中,从根xmlns:app="http://schemas.android.com/apk/res-auto"
元素中删除<menu>
,从app:showAsAction="never"
元素中删除<item>
属性。
步骤5:在您的活动中(例如,MainActivity
),将活动的父类更改为ActionBarActivity
以外的其他内容 - FragmentActivity
将是一个不错的选择,最小化您必须立即进行的其他更改的数量。另外,清理导入(例如, Ctrl-Shift-O )。
此时,除了清理您的项目(项目&gt;从主菜单中清除)之外,appcompat
内容应该从使用&#34; BlankActivity&#34;创建的项目中删除。模板和&#34;导航类型&#34; &#34;无&#34;。 &#34; BlankActivity&#34;上的其他模板或导航选项;模板,可能需要更多的工作。
答案 1 :(得分:7)
解决这些问题的最佳方法:
首先在项目中Right click->properties->Android
。你可以
请参阅red marked appcompat
中的Reference
。单击该和
删除它。
删除 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 / values-v11 / styles.xml 中,您必须更改如下:
<resources>
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
</style>
</resources>
在 res / values-v14 / styles.xml 中,您必须更改如下:
<resources>
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
更改 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>
最后更改您的 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);
}
}
LikeWise,你必须这样做才能创建一个新项目