android - Kotlin aar Android 库崩溃
问题描述
我现在正在尝试构建 aar 库以获取设备信息。构建库时似乎很好,但是当我将测试应用程序与库集成时,我一直崩溃。
这是我的崩溃日志。
07-07 02:44:23.033 8021-8021/ruri.sdk_test E/AndroidRuntime: FATAL EXCEPTION: main
Process: ruri.sdk_test, PID: 8021
java.lang.ClassCastException: java.lang.String cannot be cast to android.net.ConnectivityManager
at jinuooki.com.peterworks.peterBrix$Companion.event(peterBrix.kt:43)
at jinuooki.com.peterworks.peterBrix.event(Unknown Source:2)
at ruri.sdk_test.MainActivity$1.onClick(MainActivity.java:20)
at android.view.View.performClick(View.java:6294)
at android.view.View$PerformClick.run(View.java:24770)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
这是我的图书馆代码。
fun event(eventName: String) {
val osName = "Android"
val connect: ConnectivityManager = Context.CONNECTIVITY_SERVICE
val netStatue = connect.activeNetworkInfo.typeName
val networkString = netStatue.toLowerCase()
val wm: WindowManager = Context.WINDOW_SERVICE
val rotation = wm.defaultDisplay.rotation
val sMode = when (rotation) {
Surface.ROTATION_0 -> true
Surface.ROTATION_180 -> true
Surface.ROTATION_90 -> false
Surface.ROTATION_270 -> false
else -> null
}
val telephonyManager = Context.TELEPHONY_SERVICE
val netwokrName = telephonyManager
val app = PackageManager.GET_META_DATA as ApplicationInfo
val bundle = app.metaData
val packagename = app.packageName
}
你能告诉我我错过了什么吗?
解决方案
堆栈跟踪与您发布的代码不匹配。
错误信息:
java.lang.String 不能转换为 android.net.ConnectivityManager
意味着您有 aString
您正尝试将其转换为ConnectivityManager
.
请非常小心,您ConnectivityManager
以正确的方式获得。
根据这里的官方指南,您应该使用:
val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
推荐阅读
- c# - 从我的父对象 C# WPF 中的对象列表中创建数据网格中的子行/子行
- c# - SQLDependancy 后应用程序崩溃
- android - 需要帮助学习为此 Android 应用程序(Kotlin、MVVM、Room、Dagger2)编写测试
- python - 我们能否避免对只有 2 个唯一值的分类数据使用一种热编码?
- php - PHP中的页面分页
- c# - 在 DynamicExpreso 中解析具有未知数量参数的表达式
- javascript - JQuery Select2无法选择选项
- windows - 在 ffmpeg 中使用 WxH 时出现无效帧大小错误
- git - 如何通过 shell 命令行授予组对 Bitbucket 存储库的写入权限
- graphql - 错误:BabelPluginRemoveGraphQL:字符串插值