抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

2021.01 第一个月 踩坑小记

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 模糊查询

其他

最近搞了个简单的文件系统,虚拟目录,和文件实际上关系不大,有空再谈谈。

相比较专业的还是有出入的,比如:

https://lhalcyon.com/mysql-closuretable/

https://kyle.ai/blog/6905.html


0条评论

发表评论