⑴ robolectric 支持 api 21吗
Robolectric简介
在android平台上运行单元测试用例需要真机或模拟器,从构建、部署、到启动应用程序通常需要好几分钟,这对于TDD来说太慢了,也许你尝试过在IDE上直接运行测试用例,但得到的只能是java.lang.RuntimeException: Stub!
而Robolectric正是这样一个允许单元测试直接运行于JVM之上的单元早磨测试框架,无需真机或模拟器,因此大大加快核宴了运行速度。
原理:参考http://www.infoq.com/cn/articles/android-unit-test
缺点:Robolectric对Android底层的模拟实现还未完全
Robolectric环境准备:
预置条件:
1.已安装有android开发环境
2.已安装有maven环境
3.Eclipse已安装有M2Eclipse插件
备注:
环境中,maven版本为3.1.1(需要根据情况更新到新版本);
robolectric包版本为:robolectric-2.2-jar-with-dependencies.jar;
RobolectricSample-master.zip示例工程最好下载最新的;
由于示例工程处于不断改动中,示例工程与robolectric包最好下载同一天最新的,不然很可能出现版本不兼容问题
M2Eclipse推荐安装方式:
插件方式,输入以下地址,最后的kepler为当前的Eclipse版本
http://download.eclipse.org/releases/kepler
搜索框中输入maven搜索
RobolectricSample示例工程
1.下载示例工程https://github.com/robolectric/RobolectricSample
2.命令行下切换到工程目录,执行android update project -p . --target 7
(--target指定android的api level,android list命令可查询)
3.import 导入示例工程
4.配置build path,添加robolectric-***-jar-with-dependencies.jar包陆氏斗;
添加<your android install directory>/add-ons/addon-google_apis-google-**/libs/maps.jar
由于依赖关系,需要适当调整上下位置
5.配置Run Configuration,Right-click -> Run As -> Run Configurations
Tab: Classpath -> User Entries -> Add External JARs ...
找到android.jar
6.运行测试用例;右键点击测试用例,选择Run As -> Junit Test
可以看到80几个用例,仅需要20余秒,运行速度非常地快。
可能遇到的问题:
1.Project build error: Unknown packaging: apk
在Eclipse中安装m2e-android插件
安装源:http://rgladwell.github.com/m2e-android/updates/
安装方法:Help -> Install new Software -> 在出来的对话框中点击 Add ->
Name:m2e-android
Location:http://rgladwell.github.com/m2e-android/updates/
也可以通过:
若m2e装好后仍未解决,检查Maven配置
Windows—>Preferences—>Maven—>User Settings,查看setting.xml
确保这里的Maven不是用的Eclipse自带的,而是本地下载的新版本的Maven
2.示例工程与robolectric包不一致问题
[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:andr
oid-maven-plugin:3.6.1:generate-sources (default-generate-sources) on project ro
bolectricsample: Execution default-generate-sources of goal com.jayway.maven.plu
gins.android.generation2:android-maven-plugin:3.6.1:generate-sources failed: A r
equired class was missing while executing com.jayway.maven.plugins.android.gener
ation2:android-maven-plugin:3.6.1:generate-sources: Lorg/sonatype/aether/Reposit
orySystem;
原因:示例工程与robolectric包不是同一天的,有不兼容问题
解决:下载同一天的,最新版本
3.maven版本不兼容问题
maven clean test时报错,提示需要更新版本的maven
原因:maven版本为3.1.0,版本过低不兼容
解决:下载3.1.1版本
4.导入工程后,pom.xml文件中,以下插件报错
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<sdk>
<!-- platform or api level (api level 4 = platform 1.6)-->
<platform>18</platform>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
提示:
Plugin execution not covered by lifecycle configuration:
com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.0:consume-aar (execution:
default-consume-aar, phase: compile)
解决:
打开 'Problems'视图: 'Window' -> 'Show View' -> 'Problems'
右键点击报错的地方,选择'Quick Fix'
点击选择'Permanently mark goal generate in pom.xml as ignored in Eclipse build' -> 'Finish' -> 'OK'
修改完后,右键项目—> Maven —> Update Project
5.NoClassDefFoundError
执行用例时,部分可以执行通过,而部分报NoClassDefFoundError错误
原因:NoClassDefFoundError是通过new的形式去生成类实例的,在编译期间是存在的,但是在运行的时候找不到该类。
报错中也指出ClassNotFoundException,class均为android.jar包的
解决:配置Run Configurations,将android.jar包包含进去。
Right-click -> Run As -> Run Configurations
Tab: Classpath -> User Entries -> Add External JARs ...
添加android.jar
⑵ 如何安装maven projects插件
1、下载maven插件
打开eclipse ,help-install new software
add
name : m2e
url: http://download.eclipse.org/technology/m2e/releases/ (今天渣竖是2014-2-26,这个地址是有效的,手梁兆以后不知道是否有效)
name : m2e
url: http://rgladwell.github.com/m2e-android/updates (2014-4-16,这个地址是有效的,以后不知道是否有效)
2、下载 maven-bin
下载毕租地址 http://download.csdn.net/download/cyw8998/6963959
⑶ android maven plugin有什么作用
Android Maven Plugin——这个是Maven的插件,目的是能在使用mvn package时让maven构建出一个能在Android上使用的目标文件。
工具的介绍完毕,下面看看如何将Maven整合进一个Android工程:
首先看看对于已经存在的Android工程:
安装好如上的插件,在Android的工程上点右键,弹出菜单Configure->Convert to Maven project
配置好项目信息后会生成pom.xml以及工程上的图标已经多出一个小M字
更改project的packaging类型为apk
[html]viewplain
<projectxmlns="
xsi:schemaLocation="
<modelVersion>4.0.0</modelVersion>
<groupId>org.cst.ming.android.sample</groupId>
<artifactId>sample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>apk</packaging>
......
在pom内声明一个build的插件,在maven构建项目的时候就会在target内生成一个apk的文件
[html]viewplain
注意,这里指定了插件的版本,这个是maven官方提供的建议,需要在构建插件中指定插件版本;还有一点就是必须指定sdk.platform及sdk.path属性,不然会因为找不到sdk而无法build的
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.0.0</version>
<inherited>true</inherited>
<extensions>true</extensions>
<configuration>
<sdk>
<platform>7</platform>
<path>${env.ANDROID_SDK_HOME}</path>
</sdk>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
</plugin>
这时候可以在pom.xml内添加各种的依赖,并且执行mvn clean package即可构建出一个apk文件在target
此时已经整合完毕,可以在IDE内通过ADT来启动项目,亦可以通过在pom.xml内配置android-maven-plugin通过mvn android:deploy将项目部署到指定的设备(虚拟机)上,详情可以查阅android-maven-plugin的官方文档
对于新建项目的:
在新建项目的时候可以采用archetype(项目原型)的方式构建,在向导内选择项目原型,分别有
de.akquinet.android.archetypes:android-quickstart:1.0.6——用于快速构建一个android-maven项目
de.akquinet.android.archetypes:android-with-test:1.0.6——用于构建一个带有测试的android-maven项目
de.akquinet.android.archetypes:android-release:1.0.6——用于构建一个可以发布的android-maven项目,其中包含了一个纯maven的父项目及两个子android-maven项目
在项目创建之后,还有点需要修改的,由于android-maven-plugin原名为maven-android-plugin,因为某种关系在某个版本之后更名为android-maven-plugin,但在这个原型内还是使用旧的maven-android-plugin,所以需要使用新插件的必须手动修改plugin.artifactId及其plugin.version
⑷ eclipse怎么新建一个layout
eclipse 在layout下新建一个.xml
鼠标点layout一下 ...点右键->new ->android xml file 如果没有就是楼上的. 进去写档名字字尾为.xml且不能为大写 点finish就好了
右陵宏击WebContent----new---foder
foder的中文就是资料夹
第一步:配置m2e外挂资讯
点选window->preferences->Maven->Installations中点选add,配置本地maven地址。
接着配置user Settings资讯,点选window->preferences->Maven->user Settings,选择您自己下载的maven的settings资讯。
第二步:建悔宴立Maven专案
点选:CTR+N选择Maven->Maven Project,点选Next->,这里使用预设配置,直接Next,
这里有很多的Artifact Id,到底选择哪一个,具体看我们的专案,一般情况下,如果你建立的Java
APP应用,应该选择GroupId为.apache.maven.archetypes,Artifact
ID为:maven-archetype-quickstart,如果你建立的是web应用,就应该选择Group
ID为:.apache.maven.archetypes,Artifact
ID为:maven-archetype-webapp,这里我们建立一个webapp应用,点选Next进入配置groupid与artifactid资讯:这里的配置相信了解过maven的一看就明白。值得注意的是version,系统预设使用了SNAPSHOT,这表示当前的专案为一个快照版本,没有正式
释出,如果你的version选择的是快照,在将来发布到中央仓库或到私服上是不可以的。接着我们点选Finish,Eclipse会根据你选择的专案去
中央仓尺前册库或私服上去下载必要的外挂,在稍等一会儿之后(等待时间跟网速或是否第一次使用maven建立本型别专案有关),专案就建立完成了。
project 有可能是ejb的,或者是J2EE的。
java project 仅仅是指j2se的专案
首先使用eclipse工具,若想快捷建立hibernate档案的话,要下载hibernate tools
在eclipse-->help--->Install New Sofare里面输入网址:
:download.jboss./jbosstools/updates/stable/helios/
可以自动检索到hibernate tools工具。点选下载
下面开始正题:
1、File--->new--->other--->搜寻hibernate 建立hibernate.cfg.xml档案
2、填写内容
3.填写完毕内容 点选建立。
完成的配置档案:hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-Hibernate/Hibernate Configuration DTD 3.0EN"
":hibernate.sourcefe.NET/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name=hibernate.connection.username>root</property>
<property name=hibernate.connection.password>mysqladmin</property>
<property name=hibernate.dialect>.hibernate.dialect.MySQLDialect</property>
<property name=hibernate.connection.driver_class>.MySQL.jdbc.Driver</property>
<property name=hibernate.connection.url>jdbc:mysql:/db_pb</property>
<property name=hibernate.hbm2ddl.auto>update</property>
首先定义一个fragment
在onCreateView中返回fragment的检视
public class MyFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_test, null);
return view;
}
}
方法一,静态的使用Fragment,直接在布局档案中加入fragment
android:name指定fragment的类
<LinearLayout xmlns:android=":schemas.android./apk/res/android"
xmlns:tools=":schemas.android./tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name=".MyFragment"/>
</LinearLayout>
方法二,动态新增fragment,
activity布局,用一个framelayout作为fragment容器
<RelativeLayout xmlns:android=":schemas.android./apk/res/android"
xmlns:tools=":schemas.android./tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".example.demo.MainActivity" >
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"></FrameLayout>
</RelativeLayout>
activity程式码
package .example.demo;
import android.app.Activity;
import android.app.FragmentManager;
public class MainActivity extends Activity {
FragmentManager fm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fm = getFragmentManager();
fm.beginTransaction().add(R.id.fragment_container,new MyFragment()).mit();
}
感谢您对诺基亚Lumia520的支援。您可以在电脑上开启live.网页,选择“立即注册”,根据提示填写相关个人资讯(出生年龄填写为大于十八周岁,国家区域选择为中国),然后点选“接受”,注册成功后将手机连线可用网路,进入设定-电子邮件+账户-新增账户-Microsoft账户中登陆您的微软账户即可。
首先确保你的电脑里已经正确的安装了JDK,检视方法和执行结果如下。
eaton@eaton:~$ echo $JAVA_HOME
/usr/java/jdk1.8.0_20
eaton@eaton:~$ java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) Server VM (build 25.20-b23, mixed mode)
eaton@eaton:~$
若出现如上的结果,说明电脑里已经安装JDK成功。
这是一个开发网站的框架,如果你要生成一个软体的话,这个框架应该是达不到你的要求的。具体是要看看你是生成网站,还是需要软体?