- 博客(17)
- 收藏
- 关注
原创 怎样在Android Studio中制作jar包
用过eclipse的都知道,它有一个Export的功能可以导出jar包,非常方便。那么Android Studio如何实现这一点呢?其实很简单,我们在用Android Studio构建项目的时候,它就会帮我们编译源码并生成jar包,只不过这个jar包是个中间产物,最终还是要和其它资源文件一起合成最终的安装包。既然知道了这一点,那么问题中如何制作jar包的表述或许就不太准确了,确切的说应该是我们如何找到这个中间产物?或者为了很便捷,把它重命名一下重新放个位置。以下便是具体步骤。1.确定jar包的位置ja
2021-10-21 14:53:31
1538
原创 Task :app:lintVitalAnalyzeRelease FAILED
问题描述用Android Studio构建一个项目(原本是eclipse ADT项目,刚迁移到studio),构建debug版本时正常,构建release版本时报错,错误信息如下:FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:lintVitalAnalyzeRelease'.> Could not resolve all files for configur
2021-10-20 22:56:24
5457
原创 Android SQLite数据库版本升级(分逐级升级和跨版本升级)
参考:Android Sqlite数据库跨版本升级 保存之前数据本文说的数据库升级是基于Android原生APISQLiteOpenHelper实现的逻辑,不涉及第三方库。其实如果使用官方推荐的Room库的话,可以利用RoomDatabase.Builder.addMigrations()方法配合Migration类灵活的设置迁移(升级)路径,根本不需要自己来实现其中的逻辑。首先,关于SQLiteOpenHelper类我们需要知道几点:onCreate()方法只在第一次创建数据库的时候调用,onUpgr
2021-05-28 16:46:30
3218
2
原创 配置环境变量
一般情况,使用Android Studio的默认配置就可以了。但是如果C盘空间不是太充裕,则可以通过配置环境变量的方式将一些对磁盘资源要求较高的数据存放在其他地方。一般磁盘占用较大的就两个:Gradle 缓存和 AVD 数据。Gradle cache默认路径:%USERPROFILE%\.gradle.可以通过配置环境变量GRADLE_USER_HOME指向其他位置,如:D:\AppDat...
2020-04-20 15:10:48
313
原创 查看签名信息
apk 包用解压工具解压出 META-INF/CERT.RSA 文件命令行输入keytool -printcert -file ...\CERT.RSAkeystore命令行输入keytool -list -v -keystore ...\filename.keystore关于 keytool 命令的具体用法,参考Keytool Reference....
2020-04-20 12:11:38
364
原创 关于"No toolchains found in the NDK toolchains folder"的错误
Gradle Sync Issues:ERROR: No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-androidThis version of the NDK may be incompatible with the Android Gradle plugin versi...
2019-10-12 10:43:43
702
原创 java.lang.NoClassDefFoundError: <clinit> failed for class xxx
这个错误是在我使用第三方监控sdk展示监控视频时发生的。运行时崩溃的日志如下:java.lang.NoClassDefFoundError: &amp;amp;lt;clinit&amp;amp;gt; failed for class org.MediaPlayer.PlayM4.Player; see exception in other thread at com.gexun.kanban.main.monito...
2018-11-02 16:02:15
2777
原创 使用RadioButton需要注意的几个地方
注意点一如图,在RadioGroup中放置两个单选按钮a和b,给RadioGroup设置监听 rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGr...
2018-09-18 15:43:26
804
转载 30分钟弄明白Touch事件分发机制
Touch事件分发中只有两个主角:ViewGroup 和 View。 Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理。View在ViewGroup内,ViewGroup也可以在其他ViewGroup内,这时候把内部的ViewGroup当成View来分析。ViewGroup的相关事件有三个:onInt...
2018-08-28 14:16:54
256
原创 JSONObject和JSONArray使用注意事项
一、不要使用org.json.JSONObject 和org.json.JSONArray 的toString() 方法来生成json字符串,因为如果其中某个字符串类型字段中含有转义字符或’/‘等字符,toString() 方法会在这些字符前面加上‘\\’。例如:JSONArray imgArray = new JSONArray();JSONObject object = new JSONOb
2017-12-25 19:28:55
3671
原创 画一条虚线
先创建 dashed.xml<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> <stroke android:width="1dp" android:color="@color/gainsboro" and
2017-12-04 15:20:32
612
转载 判断当前线程是否UI线程
两种方法:1.if (Thread.currentThread() == Looper.getMainLooper().getThread()) { // UI线程 } else { // 非UI线程 }2.if (Looper.myLooper() == Looper.getM
2017-11-20 11:23:08
4359
原创 so库相关错误
一、xx.so: has text relocations错误日志如下:E/linker: /data/app/com.gexun.sunmess_H-1/lib/arm/libCpuFeatures.so: has text relocationsE/AndroidRuntime: FATAL EXCEPTION: Thread-4 Proces
2017-08-15 12:42:11
998
原创 Spinner 使用注意点
关于Spinner的使用参考Android官网Api Guides->User Interface->Input Controls->Spinners.但有几点需要注意:自定义显示样式Spinner spinner = (Spinner) findViewById(R.id.spinner);// 此处的布局是用于控件本身的,想要修改控件本身的样式,替换此处布局ArrayAdapt
2017-08-08 20:59:27
459
原创 Generate Signed APK时报"MissingTranslation"类型错误
错误如下:Error: "app_name" is not translated in "ar" (Arabic), "cs" (Czech), "de" (German), "es" (Spanish), "fi" (Finnish), "fr" (French), "he" (Hebrew), "it" (Italian), "iw" (Hebrew), "ja" (Japanese),
2017-07-24 20:05:20
663
原创 集合List<E>转换成对应元素类型的数组E[]
一开始自然想到强转,如下:List list = new ArrayList<>();String[] array = (String[]) list.toArray();结果运行时异常。仔细发现还有个重载方法,如下:List list = new ArrayList<>();String[] array = list.toArray(new String[list.size(
2017-07-14 19:51:37
985
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人