appcompat v7
库支持?我正在创建一个简单的项目,其中的
MainActivity
应该扩展自Activity
,但实际上没有。Eclipse 自动添加了操作栏支持。如何在不使用
appcompat
库的情况下创建简单项目?顺便提一下,我已经下载了最新版本的 ADT,最近更新过所有内容。我正在使用 Window 7 x64。
appcompat v7
库支持?MainActivity
应该扩展自Activity
,但实际上没有。Eclipse 自动添加了操作栏支持。appcompat
库的情况下创建简单项目?顺便提一下,我已经下载了最新版本的 ADT,最近更新过所有内容。我正在使用 Window 7 x64。
Android Development Tools (ADT)
默认集成它们的原因。API 15
进行了定位,但是您的软件包所需的最低SDK是API 10
,而兼容性库可以提供大量向后兼容的API。例如,使用Fragment API
的能力出现在API 11
(Android 3.0 Honeycomb)上,而在运行旧版本系统的设备上也可以使用。Android 应用程序项目
,并在第二步(配置项目)中取消选中创建活动
。Eclipse自动创建了appcompat_v7。由于Kitkat Api自身启动,它会自动添加appcompat_v7
和fragment_main.xml
。
解决这些问题的最佳方法:
首先在项目中,右键单击->属性->Android
。在那里您可以看到参考
下的标记为红色的appcompat
。单击它并删除它,然后在项目构建目标
中选择正确的目标名称。
删除您的中创建的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);
}
}
同样你也需要这样做来创建一个新项目。
这是因为您的最小SDK版本设置为10,所以它被包括在内。 ActionBar
是在API 11中引入的。Eclipse会自动添加它,这样您的应用程序在支持的所有Android版本上看起来更加一致。
我是一个Android新手,每当我创建新的Android应用程序项目时,总是会自动创建一个名为appcompat_v7的项目,这让我感到很不舒服。
以下是解决方法:选择Project Properties -> Android,然后在Library框中删除appcompat_v7_x并添加appcompat_v7。这样你就可以删除appcompat_v7_x了。
不要勾选创建项目向导中的Create Activity,因为创建向导中的活动时,appcompat_v7_x会再次出现。我的ADT版本是v22.6.2-1085508。
如果我的英文不好,请见谅。
如果您不打算支持2.x版本,您可以将最低sdk版本设置为4.x,然后创建项目。这样就不会创建Appcompat V7库。
我注意到在使用ADT 22.6.2版本创建新的Android项目时,即使将minSDK设置为11,targetSDK设置为19,也会创建'appcompat'库。
这是因为在新的项目模板中,Android使用了一些来自支持库的属性。例如,如果使用actionbar创建新项目,则可以在菜单的main.xml中找到app:showAsAction="never"
,这是来自支持库的。
android:showAsAction
此外,默认的主题集可以设置为"Theme.AppCompat.Light.DarkActionBar" 如下所示(styles.xml):
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- API 14 主题自定义可以放在这里.-->
</style>
在这种情况下,style.xml中的父级主题必须更改为"android:style/Theme.Holo.Light.DarkActionBar"