如果变量为空 , 则直接抛出 kotlin.KotlinNullPointerException 异常 ;
在 Java 语言 编写的程序中 , 出现最多的崩溃就是 NullPointerException 空指针异常 ,
初学 Kotlin , 对变量机制不清楚的同学们 , 看完这篇博客基本就对变量的定义和使用有清晰的认识 ;
没有Bug是任何产品上线前都无法达到的一个目标,包括拥有资深的测试工程师也不能保证上线后100%没问题,因为我们谁也不能把所有功能的操作、运用场景想周全,做周全。
在 Android 中 , 使用 Room 数据库访问框架操作数据库 , 运行是报如下错误 ;
在很早的时候,小黑屋就介绍过如何研究Kotlin,其中涉及到了查看字节码和反编译成Java代码的方式,相信很多人研究过的人,都会或多或少遇到过Intrinsics.checkParameterIsNotNull这样或者类似的代码。
Kotlin 中的 可空类型 变量 , 在运行时 可以选择 不启用 安全调用 操作 ,
在对中TextView setText 覆值int 时报错,网上查下原因是setText整型表明是设值R.id.xxx,当然找不到。
外部引用 so 动态库 , 如果只有一个 armeabi-v7a 的动态库 , 那么如果在 arm64 的手机上执行 , 就会报如下出错误 ;
这题目起的够骚情了,原创傲慢的上校哦,转载请标明:http://blog.csdn.net/aomandeshangxiao/article/details/7753421 其实有些方法也是从网上找来的,拿来主义,共同分享下(Fragment其他资料:android之Fragment(官网资料翻译))。 第一个错误:FragmentManagerImpl.saveFragmentBasicState 下面是log: E/AndroidRuntime(29923): FATAL EXCEPTION:
Kotlin基于Java的空指针提出了一个空安全的概念,即每个属性默认不可为null。
0. 些在前面: 最近,又用到ndk去进行jni的开发了,居然连最简单的hello-jni都没有编译过。
外部引用 so 动态库 , 拷贝到 jniLibs , 尽量 4 架构都设置完全 ;
使用Java时,我们需要大量的判断一个变量是否为null,否则使用是会抛出NullPointer异常。 而kotlin使用null给一个变量赋值时,在编译时,就会报错,来防止发生这种异常
在eclipse中连接不上手机,出现adb server didn't ACK fail to start daemon 错误.
更新了 Android Studio 到 4.2.1 , 打开之前的老项目 , 部分界面是由 Kotlin 开发的 , 进入 Kotlin 开发的界面报错 , 进入 Java 开发的界面正常 ;
一、SHA-1混淆 Found 2 versions of android-support-v4.jar in the dependency list, but not all the versions are identical (check is based on SHA-1 only at this time). All versions of the libraries must be the same at this time. Versions found are: Path: D:\wor
Android 系统对每个app都会有一个最大的内存限制,如果超出这个限制,就会抛出 OOM,也就是Out Of Memory 。本质上是抛出的一个异常,一般是在内存超出限制之后抛出的。最为常见的 OOM 就是内存泄露(大量的对象无法被释放)导致的 OOM,或者说是需要的内存大小大于可分配的内存大小,例如加载一张非常大的图片,就可能出现 OOM。
Room 是 SQLite 的封装,它使 Android 对数据库的操作变得非常简单,也是迄今为止我最喜欢的 Jetpack 库。在本文中我会告诉大家如何使用并且测试 Room Kotlin API,同时在介绍过程中,我也会为大家分享其工作原理。
Java的NullPointException是经常遇到的异常,也是最让人头疼的一个异常。Kotlin为了解决这个问题,引进了可空类型,将运行时可能发生异常提前到编译期发现。 Kotlin中有可空类型,这种类型表示取值可能为空;而一般类型,则取值不能为空。区别是类型后面有一个?,表示这个类型是可空的。 举个栗子:
WCDB 是微信团队开源的一款基于 SQLite 的终端数据库。自 2017 年 6 月开源以来,它在业界得到了广泛认可并被大量应用,迄今已经推出了十多个版本。在这个过程中,WCDB 一直保持良好的向后兼容性,不断完善原有接口的细节并添加新功能。
E/AndroidRuntime(12220): FATAL EXCEPTION: main
我有一个定时器运行,然后熄灭,并做了一些事情,定时器启动罚款。Android定时器崩溃取消
我们在编程语言中使用类型的目的是为了让编译器能够确定类型所关联的对象需要分配多少空间。
最初,SQLlin 在 Kotlin/Native 平台上基于开源项目 SQLiter(见参考链接 1),目的是避免重复造轮子。虽然 SQLliter 是来自 Touchlab的优秀开源项目,但最近一年维护更新缓慢。在本文撰写时,SQLiter 于 2023 年 11 月发布了 1.3.0 和 1.3.1 两个版本(1.3.1升级到了 Kotlin 1.9.21,用于修复 1.9.20 的 Kotlin/Native 库版本号相关的问题)。但在这之前的版本,即 1.2.1 发布于 2022年 8 月,基于 Kotlin 1.6.20,一年以上没有更新。对于 2023 年的项目来说,1.6.20 过于老旧。老旧的版本导致了如下一些问题。
在 Android 中使用 Room 框架 , 创建 SQLite 数据库时 , 有时需要预填充一些数据 , 这些数据一般都是来自 assets 资源目录 ;
09-26 01:20:33.336: E/AndroidRuntime(1854): FATAL EXCEPTION: main 09-26 01:20:33.336: E/AndroidRuntime(1854): Process: com.example.nongmin, PID: 1854 09-26 01:20:33.336: E/AndroidRuntime(1854): java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.TextView 09-26 01:20:33.336: E/AndroidRuntime(1854): at com.jarvis.mytaobao.user.User_F.initView(User_F.java:77) 09-26 01:20:33.336: E/AndroidRuntime(1854): at com.jarvis.mytaobao.user.User_F.onCreateView(User_F.java:67) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.os.Handler.handleCallback(Handler.java:733) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.os.Handler.dispatchMessage(Handler.java:95) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.os.Looper.loop(Looper.java:136) 09-26 01:20:33.336: E/AndroidRuntime(1854): at android.app.ActivityThread.main(ActivityThread.java:5017) 09-26 01:20:33.336: E/AndroidRuntime(1854): at java.lang.reflect.Method.invokeNative(Native Method) 09-26 01:20:33.336: E/AndroidRuntime(1854): at java.lang.reflect.Method.invoke(Method.java:515) 09-26 01:20:33.336: E/AndroidRuntime(1854): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 09-26 01:20:33.336: E/AndroidRuntime(185
09-20 17:55:38.457: E/AndroidRuntime(14963): FATAL EXCEPTION: main 09-20 17:55:38.457: E/AndroidRuntime(14963): Process: com.clockrock.freeshare, PID: 14963 09-20 17:55:38.457: E/AndroidRuntime(14963): java.lang.NoSuchMethodError: com.clockrock.tieba.WritePostActivity.getDrawable 09-20 17:55:38.457: E/AndroidRuntime(14963): at com.clockrock.tieba.WritePostActivity.onCreate(WritePostActivity.java:236) 09-20 17:55:38.457: E/AndroidRuntime(14963): at android.app.Activity.performCreate(Activity.java:5451) 09-20 17:55:38.457: E/AndroidRuntime(14963): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) 09-20 17:55:38.457: E/AndroidRuntime(14963): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2346) 09-20 17:55:38.457: E/AndroidRuntime(14963): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2443) 09-20 17:55:38.457: E/AndroidRuntime(14963): at android.app.ActivityThread.access$800(ActivityThread.java:157) 09-20 17:55:38.457: E/AndroidRuntime(14963): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 09-20 17:55:38.457: E/AndroidRuntime(14963): at android.os.Handler.dispatchMessage(Handler.java:110) 09-20 17:55:38.457: E/AndroidRuntime(14963): at android.os.Looper.loop(Looper.java:193) 09-20 17:55:38.457: E/AndroidRuntime(14963): at android.app.ActivityThread.main(ActivityThread.java:5348) 09-20 17:55:38.457: E/AndroidRuntime(14963): at java.lang.reflect.Method.invokeNative(Native Method) 09-20 17:55:38.457: E/AndroidRuntime(14963): at java.lang.reflect.Method.invoke(Method.java:515) 09-20 17:55:38.457: E/AndroidRuntime(14963): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 09-20 17:55:38.457: E/AndroidRuntime(14963): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 09-20 17:55:38.457: E/AndroidRuntime(14963): at dalvik.system.NativeStart.main(Native Method) 错误原因:actionbar导致的问题,theme用了自定义的方法, 09-21 20:47:27.169: V/ActivityThread(1
journaling会激活额外的内存映射文件。这将进一步抑制32位版本上的数据库大小。因此,现在journaling在32位系统上默认是禁用的。
12-23 22:47:26.720: W/dalvikvm(3864): threadid=1: thread exiting with uncaught exception (group=0x410af9d8) 12-23 22:47:26.720: E/AndroidRuntime(3864): FATAL EXCEPTION: main 12-23 22:47:26.720: E/AndroidRuntime(3864): java.lang.RuntimeException: Unable to resume activity {com.project.app/com.ui.activity.MainSFA}: android.app.SuperNotCalledException: Activity {com.project.app/com.ui.activity.MainSFA} did not call through to super.onResume() 12-23 22:47:26.720: E/AndroidRuntime(3864): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2457) 12-23 22:47:26.720: E/AndroidRuntime(3864): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2485) 12-23 22:47:26.720: E/AndroidRuntime(3864): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1999) 12-23 22:47:26.720: E/AndroidRuntime(3864): at android.app.ActivityThread.access600(ActivityThread.java:126) 12-23 22:47:26.720: E/AndroidRuntime(3864): at android.app.ActivityThreadH.handleMessage(ActivityThread.java:1150) 12-23 22:47:26.720: E/AndroidRuntime(3864): at android.os.Handler.dispatchMessage(Handler.java:99) 12-23 22:47:26.720: E/AndroidRuntime(3864): at android.os.Looper.loop(Looper.java:137) 12-23 22:47:26.720: E/AndroidRuntime(3864): at android.app.ActivityThread.main(ActivityThread.java:4439)
android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@427d90f0 -- permission denied for this window type
09-03 16:55:16.820:E/AndroidRuntime(16873): FATAL EXCEPTION: main
由代码可见,mHomeWorkId 是一个不能为null的String。然后通过intent.getStringExtra 方法给mHomeWorkId赋值。
09-11 14:39:52.120: ERROR/AndroidRuntime(12051): FATAL EXCEPTION: Thread-431 09-11 14:39:52.120: ERROR/AndroidRuntime(12051): Process: com.clockrock.freeshare, PID: 12051 09-11 14:39:52.120: ERROR/AndroidRuntime(12051): java.lang.NullPointerException: println needs a message 09-11 14:39:52.120: ERROR/AndroidRuntime(12051): at android.util.Log.println_native(Native Method) 09-11 14:39:52.120: ERROR/AndroidRuntime(12051): at android.util.Log.i(Log.java:160) 09-11 14:39:52.120: ERROR/AndroidRuntime(12051): at com.clockrock.freeshare.MyPublishActivity$5.run(MyPublishActivity.java:214)
转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/38064191
Android 10 过渡版本中 , 可以选择使用分区存储方式 , 也可以选择使用之前的存储方式 ;
到目前为止,我们已经了解了Kotlin的基本符号以及基础语法。我们可以看出,使用Kotlin写的代码更简洁、可读性更好、更富有生产力。
Room Migration 数据库迁移工具 是 Android Jetpack Architecture Components ( 架构组件 ) 的一部分 , 它是一个方便的 数据库迁移工具 , 用于为 Android 中使用 Room 框架创建的数据库 提供 自动化迁移方案 ;
在 Flow 流构建器 中 , 每次 调用 FlowCollector#emit 发射元素时 ,
package main import ( "database/sql" "fmt" "log" "math" "math/rand" sqlite "github.com/mattn/go-sqlite3" ) // Computes x^y func pow(x, y int64) int64 { return int64(math.Pow(float64(x), float64(y))) } // Computes the bitwise
前两篇文章分析了我为什么抓取摩拜单车的接口以及数据分析的结果,这篇文章中讲直接提供可运行的源代码供学习。
今天突然发现项目更新脚本在拉代码的时候抛出了一个如下错误: svn: E155004: Working copy '/home/svn/***/trunk/staticfiles' locked. s
本文主要讲述原生SQLite数据库的一次ORM封装实践,给使用原生数据库操作的业务场景(如:本身是一个SDK)带来一些启示和参考意义,以及跟随框架的实现思路对数据库操作、APT、泛型等概念更深一层的理解。
Android开发中StackOverflowError错误实例分析 一、概述 我在一个复杂的layout嵌套较多的android界面,碰到了java.lang.StackOverflowError这个Fatal Exception,app程序crash退出。这个错误出现的比较奇怪,在我做技术调研的时候,这个界面是放在单独的一个程序中展示的,工作很正常,没有出现这个严重错误,当将其嵌入到一个ActivityGroup后才报错。 android SDK中对该错误的出现的场景描述为:
运行 NDK 时 , 删除了引用的动态库 , 然后 " Ctrl + Z " 恢复 , 运行就报如下错误 ;
Android之zygote源码剖析(一) Android之zygote源码剖析(二) Android之zygote源码剖析(三)
报错说明 直接在子线程更新UI会报CalledFromWrongThreadException错,错误如下: 12-20 15:39:04.730: E/AndroidRuntime(2763): FATAL EXCEPTION: Timer-0 12-20 15:39:04.730: E/AndroidRuntime(2763): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thre
09-24 12:56:16.471: E/AndroidRuntime(10696): FATAL EXCEPTION: main 09-24 12:56:16.471: E/AndroidRuntime(10696): Process: com.example.nongmin, PID: 10696 09-24 12:56:16.471: E/AndroidRuntime(10696): android.util.Androi
领取专属 10元无门槛券
手把手带您无忧上云