Alp*_*ode 11 java eclipse android
我最近将我的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
那我怎么能删除这种依赖,谢谢
Com*_*are 45
这是为什么?
因为Google工程师将这些内容添加到新活动模板中,至少是"BlankActivity".
为什么activity_main.xml文件不再直接用于活动布局
当然欢迎您使用activity_main.xml任何您想要的东西.碰巧Google的当前模板要求您使用片段.Google的模板只是模板.人们可以争辩 - 我强烈地认为"BlankActivity"模板不应该做它正在做的事情.然而,除此之外,它只是一个模板.
为什么appcompat库现在包含在每个项目中?
据推测,他们希望通过一致的操作栏启动您,即使在较旧的API级别上也是如此.
我意识到它与actionbar有关但问题是每当我创建一个新项目时,项目的文件和appcompat_v7文件都会出现红色感叹号,这会阻止我编译/运行应用程序,甚至有时appcompat_v7文件也没有创建,我唯一得到的是损坏的代码
我大约一周前报道了这个问题.
那我怎么能删除这种依赖
步骤1:在Package Explorer中右键单击项目名称,然后选择Properties.在左侧的属性类别列表中单击Android,然后向右下滚动到底部:

步骤2:在您将在属性对话框中看到的附加库项目列表中,您可能会看到类似于上面屏幕截图中显示的"appcompat_v7_6"的条目.您的最后一位数字会有所不同,可能是您的红色X而不是绿色复选标记.无论如何,如果列表中有"appcompat_v7_NNN"条目,请单击它,然后单击列表右侧的"删除"按钮.然后,单击"确定"按钮以关闭对话框.
步骤3:在res/values/styles.xml,将AppBaseThemefrom 的父级更改Theme.AppCompat.Light为@android:style/Theme.Light.在res/values-v11/styles.xml,将AppBaseThemefrom 的父级更改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"从<menu>元素中删除根元素和app:showAsAction="never"属性<item>.
步骤#5:在您的活动中(例如MainActivity),将活动的父类更改为除了以外的其他类型ActionBarActivity- FragmentActivity将是一个不错的选择,以最大限度地减少您必须立即进行的其他更改的数量.另外,清理您的导入(例如Ctrl-Shift-O).
此时,除了清理项目(项目>清理主菜单)之外,appcompat应该从使用"BlankActivity"模板创建的项目和"无"的"导航类型"中删除这些内容."BlankActivity"模板上的其他模板或导航选项可能需要更多工作.
解决这些问题的最佳方法:
首先在项目中,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>
Run Code Online (Sandbox Code Playgroud)在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)在res/values-v11/styles.xml中,您必须更改如下:
<resources>
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)在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)像这样更改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)最后更改您的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你必须这样做才能创建一个新项目
| 归档时间: |
|
| 查看次数: |
13402 次 |
| 最近记录: |