-
Can't toast on a thread that has not called Looper.prepare()
前言最近一段时间在忙着开发一款自己的APP,将自己常用的功能需求都加入进入,同时在GitHub上跟着大牛们学习新的技术,提升自己的技能,在开发的过程中不断的发现问题和解决问题。 在开发过程遇到了这样一个问题:Can't toast on a thread that has not called Looper.prepare() ,如果在一个线程中没有调用Looper.prepare(),就不能在该线程中创建Toast。这个问题是因为在子线程中弹出Toast导致的。 Android是... …
-
Android Studio Generate Signed APK 错误汇总
前言总结一下最近使用Android Studio 签名APK时遇到的问题。错误汇总 问题一 Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment] 参考链接解决方式:在Moudel下的build.gradle添加如下代码android { ... …
-
Android Studio导入Eclipse项目工程错误汇总
前言最近有几个Eclipse下的项目需要导入到Android Studio中,本想应该很简单的,谁知遇到了一大推的问题,特地在此记录一下(后续如果有遇到其他的问题再添加进来)。错误汇总 错误一 Error:Application and test application id cannot be the same: both are ‘cn.example.application’ for debugAndroidTest 这个错误是因为application... …
-
基于VLC框架的Android视频播放器Demo
前言在 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码 文章中为大家讲解了如何在Ubuntu环境下编译VLC-Android源码,这篇文章就为大家讲解如何使用编译好的 libvlc-3.0.0.aar 包来编写一个视频播放器 项目源代码。代码实现build.gradle 中配置使用 libvlc-3.0.0.aar 包//---1、---repositories{ flatDir{ dirs 'libs' }}dependencies { ... …
-
Android调用外部ContentProvider失败
前言无意中遇到调用外部的 ContentProvider 报 java.lang.SecurityException: Permission Denial: opening provider错误, 记录一下解决方法。错误原因及解决方法 报错日志Process: online.himakeit.testcontentprovider, PID: 6668java.lang.SecurityException: Permission Denial: opening provider onl... …
-
从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码
前言公司项目中使用的libvlcjni.so库文件,有点老,对Android 6.0+系统兼容性太差了,当程序运行在Android6.0+系统上时,回弹出警告框,提示libvlcjni.so:text relocations异常,虽然,程序播放视频没有问题,但是,总是弹出提示框就非常不友好了,为此,就需要重新编译一个新的库文件。 由于,在编译中遇到了一大堆难题,足足花了3天时间才将VLC-Android源码编译成功。期间在网上查找了不少参考资料,但是,大都介绍太过详细,好多地方没有将清楚,... …
-
Android 数据库SQLite使用小结
前言在Android开发过程中,对于数据的存储,我们或多或少的都会使用到数据库相关的操作,所以在此小小的总结一下,Android中使用SQLite数据库的技巧和方法,算是自己对数据库知识的复习。项目源代码增删改查 adb shell中操作SQLiteadb shellsu //以管理员的身份运行命令sqlite DATABASE_NAME.db //进入要操作的数据库.table //查看当前数据库有哪些表.table t% //".tables"命令后也可以跟一参数,它是一个patte... …
-
Android Studio代码混淆-第三方jar混淆汇总(持续更新)
前言Android有非常多的优秀的第三方开源jar包,我们经常在我们的项目中使用了不少jar包,但是往往到了release的时候就忘了混淆第三方jar包了,会给我们开发带来不少麻烦,所有在这里汇总一下一些比较热门的第三方jar包的混淆方式,方便大家开发。本篇文章会持续更新,如果你有其它jar包的混淆使用方式也可以告知我,以便可以更好的为大家提供一份较为完整实例。 常用第三方开源jar包 排名不分先后(按首字母顺序排列)Android-gif-drawable 链接-keep publi... …
-
Android Studio代码混淆
前言最近两天研究了一下,如何在Android Studio中配置代码混淆,代码混淆不仅仅可以保护我们的代码,他还有精简编译后程序大小的作用,下面就详细讲解一下,该如何给我们的项目配置代码混淆。 项目源代码目录 build.gradle中的配置 编写自己的混淆规则 写在最后 参考资源build.gradle中的配置 首先需要在 Module 的 build.gradle 中将 minifyEnabled 的属性值改为 true ,这里的 minifyEnable 就是是否需要混淆... …
-
Android自定义图形-Shape的使用
前言在Android开发中我们经常要改变控件(如Button)的背景、颜色、样式等,通常情况下我们可以直接使用不同的图片来改变控件的样式,但是,如果使用到的图片特别多、或者比较大,就会导致我们的APK体积增大,这是非常不友好的。还好Google为我们提供了一套自定义图形的方法,也就是我们今天的主角Shape 项目源代码先来看看效果图吧!目录 实现思路 具体实现 知识点 写在最后 参考资源Shape的子属性 shape一共有6个子属性:solid、gradient、stroke... …