pengwei's Picture

pengwei

0

227 posts

怎么下载github项目的某个文件夹?

github上提供了git下载和整个项目的zip包下载,有时候项目很大,而你又只想下载某个文件夹的时候就比较麻烦了。整理了下网上下载Github某个文件夹的教程如下: 下载master分支文件夹: 文件夹地址为:https://github.com/alibaba/freeline/tree/master/gradle 下载方法 svn checkout  https://github.com/alibaba/freeline/trunk/gradle 第一次使用会提示这个: (R)eject, accept (t)emporarily or accept (p)ermanently?  选择p永久接受就好了。 下载Branch分支文件夹 原理差不多,如文件夹地址为: https://github.com/alibaba/freeline/tree/as_plugin/android-studio-plugin 这是在as_plugin分支下的android-studio-plugin文件夹 下载方法

阅读全文...

导入intellij plugin项目报错No plugin module specified for configuration

导入intellij IDEA项目总是运行失败,报错No plugin module specified for configuration。 在http://stackoverflow.com/questions/18278440/how-to-import-and-run-existing-plugins-from-intellij-community-edition-repo上找到了答案,原来导入intellij plugin项目默认用的java项目来解析,所以不管怎么设置都添加不了插件项目。 只要把项目根目录的*.iml中 module type="JAVA_MODULE"  改成 module type="PLUGIN_MODULE"  就可以啦。 还有,别忘了修改plugin.xml的位置,java项目默认在根目录Meta-INF下,而plugin项目在resource下META-INF下。

阅读全文...

java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0

用android studio导入项目的过程中发生了这个错误,gradle classpath用的2.0.111,改成1.5或者2.1就报错extConfig找不到。 网上找了很多答案,答案绝大部分都是说用eclipse设置jre为1.7,但是在android里面我确实已经设置1.8了,在sdk location里面的jdk location。 各种google和stackover找答案,绝望之余居然在百度上找到了解决方案 http://www.she.vc/article/18-98390-0.html 在sdk location里面设置jdk是不够的,还需要修改android studio默认启用的jdk版本。MAC在/Application/Android Studio/Contents/info.plist中 AS默认的是:JVMVersion 1.6*,1.7+ 修改为JVMVersion 1.8.+ 如果修改完报错owner pid 和 my

阅读全文...

android手机调试看不到部分logcat日志

看不到logcat的原因是部分手机默认关闭了Log.v(),Log.d(),Log.i()显示,日志毕竟要输出要文件,对性能还是有影响的,对普通用户而已日志没有任何作用,当然这就苦了开发者了,下面提供部分手机的解决方案,欢迎大家补充。 华为手机解决方案 进入手机拨号界面 输入*#*#2846579#*#* 输入完毕后自动跳转到测试界面 依次选择ProjectMenu–>后台设置–>LOG设置–>在此可以看见一些列关于LOG的设置(打开或关闭) 按照自己的需求设置LOG开关 奇酷手机解决方案 在桌面点击拨号,在拨号盘输入“*20121220#”,进入工程模式 找到日志输出等级,点击进入 点击“Log print enable”,选择“Enable” 点击“Java log level”,选择“LOGV

阅读全文...

让gradle task可以执行多次

在开发中遇到这个需求,google也没能找到答案,最后自己解决了,分享出来给大家参考参考。 默认情况下gradle的task都是只能执行一次的,如下面的代码 task a { println("execute function a !!!!!!!!!!!!!!!!!!"); } a.execute() a.execute() a.execute() 运行后发现task a仅仅执行了一次,为啥只执行一次呢,开始分析通过查看 AbstractTask::execute()方法如下 public final void execute() { this.getExecuter().execute(this, this.state, new DefaultTaskExecutionContext()); this.state.rethrowFailure(); } 通过观察发现是the.state的问题,state的类型是TaskStateInternal,里面记录了task当前的状态,executing正在执行,executed执行完成等等 知道这个状态影响了task多次执行,但是我们还是没有解决我们的问题,再来看看TaskExecuter类,TaskExecuter是一个接口,

阅读全文...

java.lang.IllegalArgumentException: Illegal character (d83d)

在使用XmlSerializer过程中遇到了下面这个错误 java.lang.IllegalArgumentException: Illegal character (d83d) at org.kxml2.io.KXmlSerializer.reportInvalidCharacter(KXmlSerializer.java:144) at org.kxml2.io.KXmlSerializer.writeEscaped(KXmlSerializer.java:130) at org.kxml2.io.KXmlSerializer.attribute(KXmlSerializer.java:465) 这是安卓4.4及以下系统的bug,XmlSerializer类不支持emoji表情,google在android4.4以上已经修复了这个问题 崩溃的具体原因目前不是很清楚,网上说是XmlSerializer忽略utf-16编码情况,具体也不是很了解,等后续再来研究一下。 支持4.4以下解决方案如下 将XmlSerializer serializer = Xml.newSerializer(); 替换成XmlSerializer

阅读全文...

Intellij Idea输出可运行jar包

在开发中经常可以看到可以执行的jar包,如paros.jar,双击运行就可以出现界面,而且是跨平台的,只要安装了jdk的设置都可以运行,那这样的jar包是怎么打包的呢? 这得说起我一个apk重签名的工具,一个利用java awt开发的可视化小工具,想把它打包成一个jar包供其他用户使用,我是用的开发工具是intellij idea,像eclipse不在讨论范围,android studio和这个操作一致。 开始上图了,选择右上角项目菜单 选择Artifaces,然后点击+号添加JAR 选择程序入口Main方法 如果你的项目仅仅只有代码,没有起亚资源文件需要打入包中,那你可以直接Apply,然后ok了,跳过下面添加图片这一步。 我的项目中包括了一张图片,resigner.png,而且在res目录下 我要怎么把图片文件打包到jar文件中呢 创建一个文件夹,名字和你包含图片的文件夹一直,我这里叫res 再在这个res目录中包含进去我们项目中的图片, 选择add cope of 选择File,会弹出提示框让我们选择文件 选择resigner.png图片 然后Apply ok就完成配置了 想打包的话,选择Build -> Build Artifacts就好了

阅读全文...

解决CollapsingToolbarLayout和ViewPager滚动矛盾

参考文档:https://gist.github.com/iPaulPro/1468510f046cb10c51ea 项目用用到了CollapsingToolbarLayout和ViewPager,ViewPager中又包含一个ListView, 类似上图中效果,但是做完的效果是ListView不能推动CollapsingToolbarLayout滚动,困扰了我好久,解决方案请参考上述链接,我贴出我解决问题用的布局 <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"

阅读全文...

使用charles抓取https请求

这里就不介绍charles怎么抓取http请求了,相信看这篇文章的读者都是冲着https来的。我也在网上看了很多教程,都说去http://www.charlesproxy.com/ssl.zip 下载证书,but这个网址根本访问不了啊,翻墙也访问不了,都是骗纸。最后东拼西凑终于搞定了https的抓取,分享出来给大家。 1.设置charles 在Proxy setting中选择SSL选项,选中Enable SSL proxying,点击Add添加host * 、 port  443 在help中选择Install Charles CA SSL Certificate 载入证书 会弹出提示让输入密码,输入完密码会跳转到钥匙串界面 看到一个没认证charles的证书,双击这个证书,选择始终信任,关闭页面系统会让再次输入密码,输入完密码就搞定了证书安装。 都设置好了别忘了重启charles!!! 2.给手机设置证书 下载证书到手机:ssl.zip , 解压后复制到手机,看看手机能不能直接安装charles-proxy-ssl-proxying-certificate.crt 或者浏览器扫描二维码直接下载到手机 (微信,微博不支持下载就不用我说了吧)

阅读全文...

android和PHP对称加密AES加密算法

开发中经常遇到这样的场景:在服务器端对数据进行加密,客户端进行解密,这样可以有效的防止数据在传输过程中被截取,客户端和服务器采用相同的密钥进行加解密,AES加密算法是个不错的选择。 php算法 "; echo Security::decrypt($a, $key); class Security { public static function encrypt($input, $key) { $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = Security::pkcs5_pad($input, $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); $iv

阅读全文...