把自己的程序打成jar包,让别人调用
我们写程序的时候往往需要把自己的程序打包成jar包,给第三方调用。Eclipse让我们非常方便的可以导出jar包。但是当程序里需要用到res里的资源时,往往就会出现问题。因为统自动生成的R类如果被打到jar包中后,就失去了索引资源的作用。导致封装成jar包的view无法获取对应资源。因为R类的属性值是在应用编译打包时由系统自动分配的。R类打包之后失效,实际是因为R类的内部类里面的属性失效,因为打包之后这些属性的值就固定了,但是实际项目中这些值是在编译时有系统自动分配的,无法在编译前固定。
本文就提供一种方法,解决这个问题。
首先建立一个AndroidJar项目。这个项目将来就是要打成jar包的项目。
结构如下:
<ignore_js_op> ![]() 然后再建立一个AndroidJarTest项目。这个项目就是应用jar包的项目。
AndroidJar写好后,就是导出jar包。相信大家都非常熟悉,步骤如下:
1.选中AndroidJar,右键选择export。
2.选择jar file。只需导出源码。如图:
<ignore_js_op> ![]() 1.然后点击finish。就可以导出jar包了。
AndroidJarTest项目对jar包的应用方法。
1.在AndroidJarTest项目下建立一个libs文件夹,再把刚才导出的jar包放到里面。再把jar包加到java build path的路径里。
<ignore_js_op> ![]() 2.因为刚才只是把AndroidJar的源码打成了jar包。但是资源并没有打包。所以现在要把AndroidJar项目里的资源。拷贝到AndroidJarTest的项目下。具体就是res下的文件。因为太简单,这里就不演示怎么拷了。
2.最后要在AndroidJarTest的AndroidManifest.xml里注册AndroidJar里的activity,service,receiver。很多广告插件都是这么做的。相信大家都非常熟悉。
[Java] 纯文本查看 复制代码
在AndroidJarTest里就只要一个其他的activity。它负责跳转到AndroidJar里。AndroidJar里就三个按钮分别是启动一个服务,每隔10秒就发出一个广播,然后广播接收到后就弹出一个toast,“大家好,我是苍老师!”和一个停止服务。最下面一个就是跳到一个有苍老师的界面。
<ignore_js_op> ![]() ![]() ![]() 程序相当简单。其中根据资源创建view,和根据资源找到相应字符的核心类为ResManager。大家可以下载源码,研究研究。
<ignore_js_op> |
把自己的程序打成jar包,让别人调用的更多相关文章
- 高版本 eclipse 如何安装 fatjar 插件以及使用 fatjar 将 Java 程序打成 Jar 包
高版本 eclipse 如何安装 fatjar 插件以及使用 fatjar 将 Java 程序打成 Jar 包 Eclipse Version: Neon.3 Release (4.6.3) Welc ...
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
转载地址:http://blog.csdn.net/xiaanming/article/details/9257853 最近有一个需要,我们公司做了一个apk客户端,然后其他的公司可以根据自己的需要来 ...
- 【转】Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法) 鼠标右键项目,然后属性,然后java buildpath 然后order and ex ...
- Spring boot 打成jar包问题总结
Spring boot 打成jar包问题总结 1.Unable to find a single main class from the following candidates 1.1.问题描述 m ...
- Java基础之用记事本编辑java代码运行,并且打成jar包后运行
使用记事本写java代码 1.在d盘新建一个记事本,名字叫做zhanzhuang.java,会询问不可用,是否继续,点击是 2.在里面编辑就如下内容,注意文件的名字要和 class 后面的名字相对应 ...
- 将Java程序打jar包并运行
1)接着上篇博客继续说手动编译之后,将代码打成jar包,然后直接“java -jar lz.jar"运行不成功的问题.还是先上代码: 这个是Demo类: package org.lz.dem ...
- 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案
JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...
- eclipse将引用了第三方jar包的java项目打成jar包
今天用java开发了一个项目,想要打成jar包,并在linux环境下运行.但是运行时引用的第三方jar包却显示classNotFind错误. 于是查了一下解决办法,在此贴出来,方便以后查阅. 用Ecl ...
- 将main方法打成jar包,并引用第三方的maven jar包
一.准备工作.执行命令 学习插件: 学习apache的打包插件maven-assembly-plugin:http://maven.apache.org/plugins/maven-assembly- ...
随机推荐
- linux伪文件与proc文件
linux/unix系统的文件类型大致可分为三类:普通文件.目录文件和伪文件.常见的伪文件分别是特殊文件.命名管道及proc文件. 伪文件不是用来存储数据的,因此这些文件不占用磁盘空间,尽管这些文件确 ...
- hdu 2101
#include <stdio.h> int main() { int a,b; while(scanf("%d%d",&a,&b)!=EOF) { i ...
- centos7上使用yum安装mysql
centos yum是没有mysql的,集成的是新的Mariadb,怎么用yum的方式在centos7上安装mysql呢? 1. 下载mysql的repo源 wget http://repo.mysq ...
- SQL Server 2005无日志文件附加数据库
公司网站运营两年多了,日志文件超级大,在重装系统的时候,为了省事,就没有备份日志文件,而且是没有分离就把日志文件给删掉了(下次一定要记得先分离再删日志文件).结果造成数据库怎么都附加不上.出现错误. ...
- Oracle 如何让别人能够连接到你的数据库
Oracle 初步 --Oracle的一些关键字 i和g只是版本的代号,指oracle运用的技术i代表Internet就是互联网技术g代表grid就是网格技术现在出的最新版是c就是cloud也就是云技 ...
- POJ 1151 - Atlantis 线段树+扫描线..
离散化: 将所有的x轴坐标存在一个数组里..排序.当进入一条线段时..通过二分的方式确定其左右点对应的离散值... 扫描线..可以看成一根平行于x轴的直线..至y=0开始往上扫..直到扫出最后一条平行 ...
- python类方法与对象方法学习
class Test_Demo: TEST = 'test_value' def __init__(self,name,age): self.name = name self.age = age #s ...
- jquery1.9学习笔记 之选择器(基本元素三)
标签选择器("element") 描述: 选择所有与给出标签名相匹配的元素. 同功能的JS原生方法:getElementByTagName() 例子: 查找每个div元素. &l ...
- 在PHP中开启CURL扩展,使其支持curl()函数
在用PHP开发CMS的时候,要用到PHP的curl函数,默认状态下,这个函数需要开启CURL扩展,有主机使用权的,可通过PHP.ini文件开启本扩展,方法如下: 1.打开php.ini,定位到;ext ...
- AES CBC 128的实现
原由 AES已经变成目前对称加密中最流行算法之一,AES可以使用128.192.和256位密钥,并且用128位分组加密和解密数据. 项目中需要使用AES对密码信息进行加密,由嵌入式设备使用C语言进行加 ...