热度 24
2015-11-4 15:24
1048 次阅读|
0 个评论
eclipse 安卓项目取消v4,v7 appcompat支持库Support Library关联的方法 wxleasyland@sina.com 2015.11.4 v4 Support Library 这个库是为Android 1.6(API level 4)和更高版本设计的。包括对应用组件、用户界面功能、辅助功能、数据处理、网络连接和编程工具的支持。 这个库就是一个文件“android-support-v4.jar”,它不带有界面资源,所以就直接放在你的APP的项目目录libs下面。 只要你的libs目录下有库文件,eclipse就会自动把它加入到项目中来。 新建APP项目时,eclipse会自动生成这个文件到你的项目中。 取消方法:如果你不用v4库,它的存在会增加你的APP程序安装包APK的大小,所以直接把这个文件删掉,再刷新一下项目就好了。 v7 appcompat library 这个库支持Action Bar用户界面。 这个库不仅有.jar文件,而且带有界面资源文件。所以是以库项目的形式出现的。在eclipse里是“appcompat_v7”这个项目。 如果你的APP项目新建时,mininum require SDK选API14的,eclipse会自动生成“appcompat_v7”这个项目,并把你的APP项目与它相关联。(如果“appcompat_v7”项目有异常,可以把它删掉,再新建一个APP项目,“appcompat_v7”项目就会自动又出来了) 但是Action Bar要求项目在API 11以上才能用,所以项目可能会出错,见另一篇文章,或者取消这个库。 如果你不用v7 appcompat库,它的存在会增加你的APP程序安装包APK的大小,去除方法: 情况一、自己已有的APP项目 1. 源文件改成不含action bar的代码: 比如源文件是这样的: import android.support.v7.app.ActionBarActivity; ――这句改成:import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends ActionBarActivity { ――这句中改成:extends Activity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { ――这个功能方法全部删掉 // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { ――这个功能方法全部删掉 // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } 即变成了没有action bar的代码了: import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } 2. 修改styles.xml文件,使其采用不带action bar的原本默认的样式: res\values\styles.xml中有:style name="AppBaseTheme" parent="Theme.AppCompat.Light",改成parent="android:Theme.Light" res\values-v11\styles.xml是:style name="AppBaseTheme" parent="Theme.AppCompat.Light",改成parent="android:Theme.Holo.Light"、 res\values-v14\styles.xml是:style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar",改成parent="android:Theme.Holo.Light.DarkActionBar" 3. 删掉menu项 把项目里的menu项(含有main.xml)整个删掉。 4.取消关联v7 appcompat库 在项目右键、属性、Android里,remove掉它: 5.刷新refresh一下项目,clean一下项目。应该就可以了。 情况二、新建一个APP项目 新建项目时: mininum require SDK选API14; Theme选什么无所谓; 后面一定要选empty activity(如果选blank activity,则生成的程序又是有action bar的代码了); 这时生成的项目就不会与“v7 appcompat库”关联的。 再把AndroidManifest.xml文件中的android:minSdkVersion="14"改成"8",就能支持低版本安卓系统了。 OK了,效果与“情况一”是完全一样的!! 因为developer.android.com这个网站被伟大的母亲墙掉了,所以资料不好找。v4、v7库的介绍和翻译可参考这个文章: http://blog.csdn.net/crazybigfish/article/details/18363351