我的GitHub
0%

问题:

存在这么一种情况:

我们要打包的android项目中已经引用了一个或多个第三方.jar文件。那么我们按上面的方法打成.jar文件,在引入到别的项目中使用中,

会发现出现错误:

NoClassDefFoundError

定位到错误代码位置,会发现生成.jar文件的原始android项目中引用的第三方.jar文件中的类找不到。

这里可以猜测,使用上述方法将android项目打成.jar文件的过程中,并没有将android项目原来引用的第三方.jar文件也一起打入到新的.jar文件中。

可以测试一下,将android项目打成的.jar文件解压缩,会发现只有java代码相关文件,而没有原来android项目中引用的第三方.jar文件

解决方案:

1、首先 问题产生的原因就是生成.jar文件的android项目原先引用的第三方.jar文件没有被打入到 新的.jar文件中

阅读全文 »

上一篇说到如何创建jar/aar,这篇介绍如何使用

一 jar的使用

jar包的使用很简单,直接将jar包拷如lib目录下

img

img

运行完之后我们试一下

img

使用成功。

二 aar包的使用

同样先导入libs目录下

阅读全文 »

Android studio下,有几种包可以放出去给别的项目调用,这里介绍jar和aar如何用as创建,可能有些简单,但确实有不会的,如有错误,请大牛指正。

一 jar包的创建

1.新建一个空白工程。

img

新建一个module文件

img

img

2.新建一个jar可使用的方法

img

img

阅读全文 »

相信大家总会碰到需要encode的时候,接着百度啊,然后发现stringByAddingPercentEscapesUsingEncoding这个方法,但是这个方法有时候无法对+等符号进行encode。那这时候咋办呢?

img

img

//encode

CF_EXPORT

CFStringRef CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding);

NSString encodedValue = (NSString)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(nil,(CFStringRef)value, nil,(CFStringRef)@”!*’();:@&=+$,/ %#[]”, kCFStringEncodingUTF8));

阅读全文 »

其实真机调试没那么难。。。又是证书又是什么的,最简单的方法,有网的情况下

img

OK了,就可以进行真机调试了

PS:如果运行时出现问题,建议将bitcode选择no运行试试

img

阅读全文 »

因为在AFNetworking中的请求结果采用block,是异步请求结果

那么如何返回结果呢?

答案很简单:代理。

例如:

img

img

代理在哪实现,结果在哪返回。

阅读全文 »

背景:RSA加密,是一种非对称形式的加密方法。因为是支付公司,决定做自己的SDK,然后写示例代码,因此会将加密和加签都写进去方便集成者阅读。找了好天找的脑壳疼。。。不过好在最后找到了。分享出来,以免大家难以寻找。。。

至于怎么生成密钥大家就自己百度一下吧。。。方法到处都能找到,我这里就不多说了。主要讲一下openssl的引入。

rsa加密和签名的代码我就放在这里了。需要自取,也可以点个✨✨哟~。也是我找了好久问了好多人才找到的。(对了,还有一个签名方法在是支付宝的sdk,可以自行去支付宝开放平台下载,不过它的验签方法要输入的参数有支付宝后台的返回信息,所以没法单独拿来使用,签名完成也没法验签所以我就没用那个,有需要的也可以自己研究研究。)

RSA加密:https://github.com/XingXiaoWu/RSA-demo

RSA签名:https://github.com/XingXiaoWu/RSA-

不会引入openssl的童鞋继续往下看吧

1.首先,自己生产一对秘钥。然后将openssl导入库。

ps:openssl这个库哪都有,自己生成也行,我后面给的rsa加密中也有,支付宝sdk里也有。

img

这个时候运行是会报错的

阅读全文 »

背景

因为老大让封装sdk,看了几天的博客,水了几个群,最后大牛们告知如何选择。(如果写的有错,望大牛指正QAQ)

lz使用的是XCode8.1

1.选择文件

img

一般选择这两个

a.

Framework 动态库。如果包含什么资源文件可使用这种方法。一般开发不包含两个framework,因为可能会起冲突。不过可以做到多个应用使用一份内存。(以前动态库无法上架,好像去年才开放的)

b.

Library 静态库。 .a文件。一般不会发生冲突。也较为常见。(水平较差的我选择了这个- -)不过资源文件得放入.bundle中。

阅读全文 »

在封装SDK时,只能限制开发者传参的类型,而不能限制传递参数的内容。

例如-(void)tranwithDic:(NSDictionary *)traderInfo;

此时,要求别人传字典类型参数,别人传的key:value是什么无法做出限制。

如果你需要拿着别人传递的参数去请求服务器来返回结果,那就必须对key做出限定,那应该怎么办呢?

答案很简单:-(void)tranwithDic:(NSObject *)traderInfo;

传递一个对象,把需要的key做成对象属性,然后在方法内部将对象转换成字典即可。

阅读全文 »