【边做项目边学Android】小白会遇到的问题--Appcompat_V7问题

问题描写叙述:

首先遇到的问题就是adt版本号的选择,sdk版本号的选择:

adt按非小白朋友说的选了最新的ADT-22.3.0,同一时候我也把sdk更新到了最新的(嗯。这个要fanqiang,或者找离线包)。

非常开心啊,认为能够開始啦。于是新建Android项目。next--》next。。。finish!项目生成!

(当然中间要填写东西)

项目建成了,发现Eclipse自己主动生成了一个奇怪的项目Appcompat_V7项目,再创建一个Android项目时,又会再多出一个appcompat_v7_2,假设再次创建,会以此类推地创建出appcompat_v7_x格式的“多余项目”出来(此情况在ADT升级为22.6.x版本号后出现,22.3.x前的版本号不会有)。处女座的我看着非常是别扭,于是就百度google各种搜啊,最终找到了原因。

问题原因:

ADT在22.3.x版本号前没有出现该情况,升级为22.6.x版本号后。才出现该情况,能够推測是新版本号导致。推測到原因后能够分析下appcompat_v7是用来做什么的,展开appcompat_v7项目。会发现有一个readme.txt文件,双击查看。该文件描写叙述例如以下:

Library Project including compatibility ActionBar.

This can be used by an Android project to provide

access to ActionBar on applications running on API 7+.

There is technically no source, but the src folder isnecessary

to ensure that the build system works.  Thecontent is actually

located in libs/android-support-v7-appcompat.jar.

The accompanying resources must also be included in theapplication.

字面意思大概能够看出。该项目是一个Library Project, 作用是让你的Android Project 在API7+的sdk版本号(即Android2.1版本号)能够訪问ActionBar的API,ActionBar相当于用户界面的操作栏,详细ActionBar的解释能够參考:http://developer.android.com/guide/topics/ui/actionbar.html。所以从中能够看出多出这个project是为了兼容低版本号的sdk

解决方法:

方法一、因为这个项目是为了兼容低版本号速sdk生成的,那么仅仅要在新建项目时将最低版本号都选为Android4.0以上就可以。

方法二、不是在adt更新到22.6.x版本号后才出现的码,22.3.x前的版本号不会有,好那就放弃新版本号。换回老版本号22.3.x。在我的网盘中能够下载到。

当然,问题不会就这么轻易结束,下回再说。

參考:

http://blog.sina.com.cn/s/blog_9653ee0f0101jeaf.html

时间: 2024-11-07 14:19:37

【边做项目边学Android】小白会遇到的问题--Appcompat_V7问题的相关文章

【边做项目边学Android】小白会遇到的问题--创建Android项目不自动生成Activity,layout目录为空

问题描述: Android官网下载的adt-bundle-windows-x86-20131030都配置好了,但是创建安卓项目之后不自动生成Activity,创建时已经选了creat Activity. 解决办法: 换更低版本的adt-v22.0.1,在我的网盘中可以下载到. 于是问题解决了.有更好的方法可以告诉我. 参考:http://zhidao.baidu.com/question/134802679966070565.html?oldq=1

【边做项目边学Android】小白会遇到的问题--This Android SDK requires Android Developer Toolkit version 23.0.0 or above

问题描写叙述: 上一篇讲到解决Appcompat_V7问题要减少adt版本号,于是就换旧版本号22.3.0啊,又一次打开Eclipse.立刻弹出: This Android SDK requires Android Developer Toolkit version 23.0.0 or above.  Current version is 12.0.0.v201106281929-138431. 一般这样的原因是误更新了SDK,导致SDK版本号过高,ECLIPSE提示须要更新ADT. 于是我认为

【边做项目边学Android】异常处理:android.os.NetworkOnMainThreadException--多线程问题

一切搞定.以为高枕无忧了,结果还是有问题! log開始报错了,获取更新信息异常..!debug一下.发现Exception:android.os.NetworkOnMainThreadException 这个异常大概意思是在主线程訪问网络时出的异常. Android在4.0之前的版本号 支持在主线程中訪问网络.可是在4.0以后对这部分程序进行了优化,也就是说訪问网络的代码不能写在主线程中了. 查看网上的解决方法.在Android中实现异步任务机制有两种方式,Handler和AsyncTask.

【边做项目边学Android】手机安全卫士01:splash界面ui

手机安全卫士项目是跟着黑马的视频做的. splash是飞洒.飞溅的意思,主要是用于完成一个产品logo显示,期间可以: 后台完成数据库初始化的操作 联网访问服务器,获取服务器最新信息(升级提示) 不同的日期显示出来不同logo,判断当前系统时间,素材一般从服务器上下载下来. 判断时间,根据不同时间显示不同的加载页面 布局文件:splash.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayou

【边做项目边学Android】知识点:Intent

一. Intent的介绍 Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间的交互. Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件.通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应. Inten

【边做项目边学Android】知识点:动态设置布局LayoutInflater

一.作用: LayoutInflater作用是将layout的xml布局文件实例化为View类对象,LayoutInflater 的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等). 二.获得 LayoutInflater 实例的三种方式 1.LayoutInflater inflater =

【边做项目边学Android】手机安全卫士08-一些布局和显示的细节:State List

我们注意到有些应用里的按钮在点击时的显示状态和普通状态是不一样的,比如: 普通状态下: 选中状态下: 那这种效果是如何实现的呢?在Android系统中提供给我们一种方便与实现这种功能的方法即:state list drawable. StateListDrawable是在XML中定义的drawable对象,我们可以通过设置不同item下的图片来显示不同状态,这取决于 drawable对象的状态.例如,一个Button控件可以有不同的状态(点击.聚焦等),通过一系列的drawable对象,可以为每

【边做项目边学Android】手机安全卫士03:获取更新的服务器配置,显示更新对话框

配置应用程序在手机桌面显示的名称和图标-AndroidManifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.liuhao.mobilesafe" android:versionCode="

【边做项目边学Android】手机安全卫士04_01:界面(Activity)之间的切换,Activity和任务栈

上一回说到,用户选择是否升级,若用户选择不升级,那么就要进入程序的主界面.下面要做的是从splash界面跳转到main界面. MainActivity创建 1.首先新建MainActivity: package com.liuhao.mobilesafe.ui; import com.liuhao.mobilesafe.R; import android.app.Activity; import android.os.Bundle; public class MainActivity exten