由于工作原因接触android开发一段时间了,对于开发有了一些了解,于是萌生了搭起android原生应用进行分析和学习的想法。先从闹钟应用开始吧。

1.首先要下载原生应用,原生应用在原生系统里面(当然你得先下载原生的系统,过程请百度之)。

目录如下:packages\apps,所有的原生基础应用都在这个里面,我们进入DeskClock目录,将其作为一个工程搭建起来。

这时候会报错,根据报错信息来看是由于缺少jar包近期的,datetimepicker.jar 、android-support-v13.jar ,下面我们寻找着两个jar包。

2.增为DeskClock工程增加jar包

2.1 datetimepicker.jar 

该jar包是有原生代码编译而成的,因此在网上找基本是找不到的,我是找了几天都没有找到。找不到怎么办呢,只能自己动手进行编译了。

搜索datetimepicker发现他的地址:\frameworks\opt\datetimepicker,打开一看也是一个工程。现在我们只需要把这个工程编译成jar包即可。

如何把工程编译为jar包呢?工程——>Properties——>android——>Is Liberary打上勾即可。另外需要注意,datetimepicker也需要引用android-support-vX.jar,这里一定要引用高版本的,比如13版的,原因后面说。

有了jar包,我们把jar包引用到DeskClock,就少了一堆错误了。

2.2 android-support-v13.jar

由于之前还发现还却少android-support-v4.jar android-support-v13.jar的包,因此引用一个更高版本的13版的即可。

引用了13的jar包之后,发现错误没有啦,是不是很高兴?

开始编译......

报错:

Unable to execute dex: Multiple dex files define Landroid/support/v13/app/FragmentCompat$FragmentCompatImpl;
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v13/app/FragmentCompat$FragmentCompatImpl;

报的错误是多个dex文件定义问题,如图,文件夹中有两个v13。

这是为什么呢?还记得我们在datetimepicker也引用了V13吧,引用的jar工程文件中含有的jar包不用重复引用,要不然会报错。

问题怎么解决?去掉V13这个包,重新编译,一切正常。

第一次编译原生应用就这么easyand愉快的结束了,下次聊点原生闹钟的解析吧。

【android原生应用】之闹钟应用搭起篇的更多相关文章

  1. 拓展 Android 原生 CountDownTimer 倒计时

    拓展 Android 原生 CountDownTimer 倒计时 [TOC] CountDownTimer 在系统的CountDownTimer上进行的修改,主要是拓展了功能,当然也保留了系统默认的模 ...

  2. Android原生json和fastjson的简单使用

    android原生操作json数据 主要是两个类 JSONObject 操作对象     JONSArray操作json数组 对象转json //创建学生对象 Student student=new ...

  3. Android原生游戏开发:使用JustWeEngine开发微信打飞机

    使用JustWeEngine开发微信打飞机: 作者博客: 博客园 引擎地址:JustWeEngine 示例代码:EngineDemo JustWeEngine? JustWeEngine是托管在Git ...

  4. android原生ExpandableListView

    android原生可扩展ExpandableListView就是可以伸缩的listView,一条标题下面有多条内容. 这个list的adapter对的数据要求与普通ListView的数据要求也有一些差 ...

  5. [Android Pro] android 4.4 Android原生权限管理:AppOps

    reference : http://m.blog.csdn.net/blog/langzxz/45308199 reference : http://blog.csdn.net/hyhyl1990/ ...

  6. PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

    PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) ...

  7. Android 原生listview item伸展收缩效果

    Android原生listview做的一个item的伸缩效果.*永远不要让你老大有机会改需求 package com.example.yunkanglast; import java.io.Seria ...

  8. Android原生APP内分享

    Android原生APP内分享,可实现数据分享以及assets文件夹分享及私有文件分享 项目地址:https://github.com/json-pu/AndroidAppShare.git

  9. Android原生跳转React不同页面(undefined is not an object)

    继续上篇文章的demo,由于现在的项目是原生的,打算用部分页面试下react native,那么问题来了:react貌似只有一个入口 index.android.js,那么在不同的原生页面需要跳转到不 ...

随机推荐

  1. 在ASP.NET中实现OAuth2.0(一)之了解OAuth

    1.什么是OAuth2.0 是一个开放授权标准,允许用户让第三方应用访问该用户在某一个网站或平台上的私密资源(如照片.视频.联系人等),而无须将用户名和密码提供给第三方应用 2.OAuth2.0授权模 ...

  2. HTML a 标签 下载 apk 文件

    代码:   <a href="http://www.abc2016.com/phone_Client/shouji.apk" class="download_inp ...

  3. Labview实现字符串加密

    Labview实现字符串加密 对字符串进行加密,规则是每个字母后移5 位 例如A 变为F,b 变为g,x 变为c,y 变为d- 实现效果 后端实现

  4. < java.util >-- Collection接口

    Collection:    |--List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引.元素可以重复.    |--Set:无序(存入和取出顺序有可能不一致),不可以存储重复元素.必须 ...

  5. bash shell漏洞及测试

    1.bash shell是大多数linux发行版本的默认shell命令解释器,但是最近爆出bash shell存在漏洞. 2.如果Bash是默认的系统shell,网络攻击者可以通过发送Web请求.se ...

  6. 软件工程随堂小作业——寻找“水桶”(C++)

    一.设计思想 思路与寻找一个水王相似,这次只是计数器和嫌疑人变量都设置为数组.每次选取一个ID与三个嫌疑人比较,若有相同则计数:若三个都不相同,则三个计数器都减一.若减为0,则从新赋值给嫌疑人. 二. ...

  7. gameObject, vector and transform

    调用其它组件中成员 通过GameObject(游戏物体). Base class for all entities in Unity scenes.  是Unity场景里面所有实体的基类. 可以理解为 ...

  8. Socket 一对多通信

    服务器(TCPServer.java): package visec; import java.net.*; import java.io.*; public class TCPServer{ pub ...

  9. 【Same Tree】cpp

    题目: Given two binary trees, write a function to check if they are equal or not. Two binary trees are ...

  10. Zabbix全方位告警接入-电话/微信/短信都支持

    百度告警平台地址: http://gaojing.baidu.com 联系我们: 邮箱:gaojing@baidu.com 电话:13924600771 QQ群:183806029 对于使用zabbi ...