
Android应用开发
Study_WangYL
这个作者很懒,什么都没留下…
展开
-
lambda expression are not supported at this language level (Android Studio中使用lambda表达式)
lambda是java8中的新特性,Android默认不支持lambda表达式。这篇文章主要是讲在android studio中lambda的配置。三步: 1.项目根目录的project/build.gradle 中添加lambda依赖:dependencies { classpath 'com.android.tools.build:gradle:2.2.2'原创 2018-01-19 15:32:11 · 851 阅读 · 0 评论 -
android微信支付最新sdk接入总结
关于上线:非硬性指标。1.申请appid 提交应用,等待审核。只有审核通过后,才能有开发资格。支付认证费:300元/年。每年需要认证一次。 2.下载sdk gradle做以下配置:dependencies { compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'}3.清单文件配置 3.1添加权限<uses-pe原创 2017-04-26 15:06:15 · 8469 阅读 · 4 评论 -
支付宝最新sdk接入总结
1.流程:1.app下订单提交给后台服务器生成订单信息,带有签名。2.提交上述返回数据到支付宝,唤起支付。3.支付宝向app返回支付结果。向服务端异步返回支付结果。 2.关于应用私钥和支付宝公钥 关于私钥,官方要求一定不能放到app客户端。 一定要配对。所谓配对就是选择一种算法的私钥,要使用对应的支付宝公钥。 在以前的api中,签名是在app端完成的。最新的api已不建议这样做。目前最新版本原创 2017-04-25 18:17:47 · 6039 阅读 · 1 评论 -
Android Studio 打包报INSTALL_FAILED_SHARED_USER_INCOMPATIBLE错误
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 打包时一直报这个错误,无论模拟器还是真机都一样。clean,rebuild无效。 这里解决的办法是: 删除manifest中android:sharedUserId配置信息。<manifest xmlns:android="http://schemas.android.com/apk/res/android"原创 2017-04-17 19:29:32 · 3999 阅读 · 0 评论 -
Element animation-list must be declared
Element animation-list must be declared异常信息:animation-list 未声明。编译可通过。animation-list是作为drawable存在的。将文件移到drawable下,异常解决。原创 2017-03-17 14:03:17 · 775 阅读 · 0 评论 -
正确导入github项目姿势
download之后删除.gradle文件夹、.idea文件夹,build文件夹。 选择import from project 选择master文件夹即可。 step1: step2: step3:这里可能还需要修改gradle版本号,build.gradle中的dependencies对应的版本号。如 step4: 点击syncProject按钮原创 2017-04-12 14:19:39 · 939 阅读 · 0 评论 -
Error:No such property: POM_ARTIFACT_ID for class: org.gradle.api.publication.maven.internal.deploye
导入项目时,报了这个错误:Error:No such property: POM_ARTIFACT_ID for class: org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMaven解决办法: 删除build.gradle文件中的apply from:xxx 即可。原创 2017-04-12 13:52:55 · 1243 阅读 · 0 评论 -
java.lang.IllegalStateException: TimerTask is scheduled already
异常信息: 1.使用timerTask时,二次调用 timer.schedule(timerTask,4000,60*1000*10);出现异常。 private Timer timer; private TimerTask timerTask=new TimerTask(){ @Override public void run() {原创 2017-03-29 16:06:16 · 916 阅读 · 0 评论 -
android.view.InflateException: Binary XML file line #2: Error inflating class linearlayout
异常:android.view.InflateException: Binary XML file line #2: Error inflating class linearlayout资源文件 起初的怀疑: 类库未正确引入; 资源文件命名空间,属性集缺失; 自定义类在proguard-rules.pro中未keep; 但这些都被一一排除了。最后定位在xml文件上,发现linearlayo原创 2017-03-29 10:10:48 · 3524 阅读 · 4 评论 -
为地图marker 设置网络图片
使用自定义marker加载本地图片:Marker marker = aMap.addMarker(new MarkerOptions() .anchor(0.5f,0.5f) .position(latLng)原创 2017-03-28 21:26:46 · 6222 阅读 · 2 评论 -
MultiDex后java.lang.NoClassDefFoundError异常解决
出现java.lang.NoClassDefFoundError异常,排除掉classpath设置问题,发现是multidex后导致的。 为什么要用multidex?项目中因方法数超过了65536,所以用到了MultiDex。 经过筛查,发现这里异常是因为multidex落下了compileapplication配置造成的。改正后,解决。 这里放上完整的multidex步骤: 1.在buil原创 2017-03-07 16:16:34 · 2753 阅读 · 0 评论 -
加入第三方sdk后包冲突引起的找不到符号 commitNow() ,commitNowAllowingStateLoss()系列问题的解决
代码如下,getSupportFragmentManager() .beginTransaction() .remove((Fragment) view) .commitNowAllowingStateLoss();编译异常,提示找不到符号commitNowAllowingStateLoss() FragmentTransaction transa原创 2017-03-20 17:31:01 · 5589 阅读 · 0 评论 -
获取高德地图api key
两种方式: 方式一: androidstudio terminal中输入命令: 切换到jdk\bin\,执行 keytool -v -list -keystore G:\keystore\debug.keystore命令 ,其中 G:\keystore\debug.keystore,代表keystore路径。如下图:这里提示密钥库文件不存在。解决办法如下: 进入.android/下。原创 2017-03-03 16:50:15 · 6698 阅读 · 0 评论 -
AsyncHttpResponseHandler关系图
AsyncHttpResponseHandler关系图原创 2017-04-28 11:23:52 · 921 阅读 · 0 评论 -
友盟社会化分享微信登录签名错误
使用微信登录时日志输出检查签名。 核对生成的签名与微信后台一致,但还是报这个错误。 请教了友盟技术支持,她根据apk生成的签名确实和我生成的不一致。 原来debug生成的签名和relase签名不一样导致的,在微信后台将签名改为relase版本的签名后,问题解决。原创 2017-04-20 10:48:39 · 2754 阅读 · 0 评论 -
多渠道打包
1.清单文件做以下配置 <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />2.配置build.gradle 2.1配置渠道信息 方式一: productFlavors { kuan { mani原创 2017-04-26 16:39:11 · 441 阅读 · 0 评论 -
gradle相关
回头重新学习一下gradle构建,还是颇有益的。下面是搜集的相关资料,以备学习、查阅。Android中Gradle常用配置 - 简书 Android开发中Gradle配置的相关概念 - 简书 Android studio gradle配置完整版 - 习惯_搬砖 Android Plugin 3.0.0 DSL Reference Gradle User Guide 中文版 (需翻墙)Andro原创 2017-12-28 09:42:42 · 291 阅读 · 0 评论 -
Could not find com.android.tools.build:gradle:3.0.1
更新gradle后运行应用,报错。 解决办法: 提示找不到gradle:3.0.1 在顶层build.gradle 中,可以看到build.gradle的配置:buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.buil原创 2017-12-27 23:53:13 · 12813 阅读 · 0 评论 -
webview与js交互--上篇--js调java
webview与js交互原创 2016-11-09 00:27:59 · 322 阅读 · 0 评论 -
Android NDK开发
安装ndk并测试官网下载ndk,ndk向后兼容,并非版本越新越好,低版本兼容高版本。配置环境变量ANDROID_NDK_HOME 值为ndk安装目录 如: D:\android-ndk-r14b-windows-x86_64\android-ndk-r14bgradle中ndk配置android{ndk { moduleName "module_count"原创 2017-09-13 15:17:16 · 405 阅读 · 0 评论 -
H5页面唤醒App及App之间跳转
H5页面跳转到App,其实质是通过uri。 Android配置: 清单文件中对应的Activity标签添加以下标签属性 <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.inten原创 2017-09-06 11:40:49 · 3902 阅读 · 0 评论 -
找不到android.app.Activity的类文件解决办法
找不到android.app.Activity的类文件使用javah 生成头文件时报了“ 无法访问android.app.Activity,找不到android.app.Activity的类文件”这个问题。 原命令: javah -jni test.lucky.ndktask.MainActivity 解决办法: 切换到src\main\java目录下,即包名同级目录,重新执行javah命令,原创 2017-09-11 17:39:07 · 3514 阅读 · 0 评论 -
总结
1.true or false? Integer a=4; Integer b=4; a==b; false。这个问题是关于装箱与拆箱。 装箱:把基本数据类型用对应的引用类型包装起来,使具有对象的性质。 int –>Integer float –>Float doble–> Double 拆箱:将引用类型的对象简化成基本数据类型。 Integer a=4;(自动装箱) a原创 2017-08-19 20:14:34 · 261 阅读 · 0 评论 -
微信自动回复功能实现
思路 实现AccessibilityService,重写onAccessibilityEvent(final AccessibilityEvent event),判断event对象是TYPE_NOTIFICATION_STATE_CHANGED(通知栏事件)还是TYPE_WINDOW_STATE_CHANGED(窗体状态改变事件)。 若是TYPE_NOTIFICATION_STATE_CHANG原创 2017-09-07 15:17:37 · 6860 阅读 · 1 评论 -
微信支付未安装微信情况下调起支付无响应
微信支付未安装微信情况下调起支付无响应解决办法目前文档上并未说明。其实微信已经提供了响应的判断方法。IWXAPI wxapi = WXAPIFactory.createWXAPI(mContext, WXConstants.APP_ID,false);if(!wxapi.isWXAppInstalled()){ //未安装的处理}记录一下原创 2017-08-03 09:58:35 · 5314 阅读 · 1 评论 -
Android 6.0权限申请
一、6.0需要处理哪些权限? 6.0之前,只要在mainfest申请即可。 6.0之后:普通权限(Normal Permission)同6.0之前。普通权限是不涉及用户隐私的。如下:ACCESS_LOCATION_EXTRA_COMMANDSACCESS_NETWORK_STATEACCESS_NOTIFICATION_POLICYACCESS_WIFI_STATEBLUETOOTH原创 2017-07-19 18:03:54 · 409 阅读 · 0 评论 -
微信签名及签名工具
接入微信需要签名(字符串格式) 应用签名的获取: 签名生成工具 用于获取安装到手机的第三方应用签名的apk包。点击下载Gen_Signature_Android2.apk [签名生成工具](https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android2.apk)安装Gen_Sign原创 2017-02-22 11:23:03 · 12863 阅读 · 0 评论 -
Failed to resolve 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+ 微信支付依赖异常
微信支付 ‘com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+ 依赖异常 异常信息如下:Could not find any matches for com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+ as no versions of com.tencent.mm.opensdk:wec原创 2017-07-20 17:43:01 · 10750 阅读 · 3 评论 -
消除tablayout间距
需要实现下面的效果,我是用tablayout实现的。实际做出来的效果: 一开始怀疑宽高设置问题,调了没解决。 最后,发现问题出在tablayout的padding上面。原来tablayout给tab默认设置了padding。 解决办法: 给tablayout 添加如下几个padding属性设置: app:tabPaddingBottom="-1dp"原创 2017-03-02 16:24:49 · 8093 阅读 · 4 评论 -
java.lang.StackOverflowError
项目中遇到这个bug,栈溢出。错误信息如下: 可以看到 47行与36行交替执行,出现此错误的原因是,递归调用导致函数层级过多,最后栈溢出。原创 2017-03-01 21:20:32 · 961 阅读 · 0 评论 -
popwindow底部弹窗
popwindow的使用原创 2016-10-26 15:05:58 · 675 阅读 · 0 评论 -
GridView嵌套HorizontalScrollView,GridView布局参数设置
gridview横向布局(gridView嵌套HorizontalScrollView场景)原创 2016-10-25 17:46:42 · 741 阅读 · 0 评论 -
listview或gridview中item的点击事件与控件点击事件冲突的解决
listview中item的点击事件与控件点击事件冲突的解决原创 2016-10-25 15:31:50 · 3546 阅读 · 0 评论 -
点击listview、gridview条目时换背景
思路:在onItemClickListener中记录点击条目的位置,并传递给adapter。在adapter的getview方法里,若position与点击位置相同,则改变背景。 另一种方式是使用selector。原创 2016-10-25 15:15:59 · 591 阅读 · 0 评论 -
AndroidStudio中NameValuePair和URLEncodedUtils导包错误
今天遇到在Android studio中出现无法导入NameValuePair和URLEncodedUtils包的问题。 提示信息:Cannot resolve symbol NameValuePair. Cannot resolve symbol URLEncodedUtils. 解决办法是: 在build.gradle文件中添加如下代码:android {...useLibrar原创 2016-10-09 23:07:45 · 2165 阅读 · 0 评论 -
认识NFC技术
NFC技术简介;NFC技术原理;NFC与RFID区别;支持NFC手机列表原创 2016-09-07 16:50:45 · 1715 阅读 · 0 评论 -
Git fork出来的Project和源Project保持同步
我们想要使fork出来的Project和源Project保持同步,当源project更新时,我们fork的Project也随之更新。那么应该如何做呢?步骤: 1.在fork的代码库中添加remote 源 ,使用 remote add 参数,如下: git remote add upstream https://github.com/JakeWharton/butterknife 2.在每次P原创 2016-09-02 23:46:14 · 1443 阅读 · 0 评论 -
Android消息机制
Android消息机制主要指的是Handler的运行机制。 (注意,消息机制中的Handler是android.os包下的Handler,不是java.util.logging包中的Handler,开发中注意不要到错包。) Handler是消息机制的上层接口。Handler将任务切换到handler所在的线程执行。 与handler相关的有MessageQueue、Looper。下面逐步介绍原创 2016-09-02 13:24:58 · 439 阅读 · 0 评论 -
Git shell 路径揭秘
这是几个月之前遇到的问题,为了再遇到此问题的朋友绕弯,今天整理了一下,贴出来。androidstduio使用git,需要安装github并配置git.exe的路径,在桌面上只发现一个application reference的图标 和一个gitshell的图标。 右击gitshell属性,复制路径,打开文件夹 C:\Users\www\AppData\Local\GitHub\PortableG原创 2016-09-01 19:11:34 · 2125 阅读 · 0 评论 -
Git shell命令
git shell常用命令原创 2016-09-01 19:04:06 · 730 阅读 · 0 评论