JNI 找不到头文件问题
在做 pdf 过程中引用到了 string.h,编译时却说找不到相关头文件,理论上系统头文件不需要做什么。
后来通过相关查找发现,需要在 CMakeLists.txt 中加上自己的 ccp:
# Creates and names a library, sets it as either STATIC # or SHARED, and provides the relative paths to its source code. # You can define multiple libraries, and CMake builds them for you. # Gradle automatically packages shared libraries with your APK. add_library( # Sets the name of the library. pdfsdk_jni # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). your_jni.cpp )
因为多的我也不懂,便不多说了。
kotlin lateinit 内存泄露问题
用 lateinit 持有生命周期对象时会内存泄露,以前没这么写过一直所以不知道,直到遇到这家的 code,真是奇葩。
解决办法就是去掉 lateinit 修饰,变成可空类型,destroy 时置空。当然,最好还是不要去直接持有生命周期对象。
这个问题网上资料比较少,我想就是因为lateinit不可置空,一直持有强引用导致的~
Cannot find setter for field – using Kotlin with Room database
很少动数据库,但有时候也需要动一动,这个错误很明显其实,就是 var 写成 val 了,一时间没能发现。
Room 数据库 TypeConverters 的用法
网上看一些人加在 enum 字段上的,其实多个 TypeConverters 应该是加在类上的,不然总是提示这个找不到,那个找不到。像这样:
@TypeConverters(Converters1::class) @TypeConverters(Converters2::class) class someTable
Room 数据库模糊查找语句
我也和网上一些人一样,第一意识是用 +
号,实际上应该用 ||
。按 SQL 语法来。
@Query("SELECT * FROM tb_use WHERE Name LIKE '%' || :name" || '%')
其他模糊查询参考:SQL 模糊查询
其他
最近搞了个简单的文件系统,虚拟目录,和文件实际上关系不大,有空再谈谈。
相比较专业的还是有出入的,比如:
本站由以下主机服务商提供服务支持:
0条评论