首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么这段代码不能在android 9上正确运行?

这段代码可能无法在Android 9上正确运行的原因有很多可能性,以下是一些常见的原因:

  1. API变更:Android平台在不同版本之间可能会引入API的变更,某些旧的API在新版本上可能已经被废弃或修改,导致代码无法在Android 9上正确运行。解决方法是查看Android 9的API文档,找到相应的替代方法或适配方案。
  2. 权限限制:Android 9引入了更严格的权限控制机制,某些敏感操作或功能可能需要动态请求权限才能正常运行。如果代码涉及到需要权限的操作,需要确保已经在代码中正确请求和处理相应的权限。
  3. 限制非SDK接口访问:Android 9引入了对非SDK接口的限制,如果代码中使用了非SDK接口,可能会导致在Android 9上无法正确运行。解决方法是使用替代的SDK接口或者通过特定的适配方案来处理。
  4. 硬件或设备兼容性:某些代码可能依赖特定的硬件功能或设备特性,在不同的Android设备上可能存在兼容性问题。在Android 9上,某些硬件功能可能发生了变化或不再支持,导致代码无法正确运行。
  5. 第三方库或框架兼容性:如果代码中使用了第三方库或框架,可能存在与Android 9不兼容的情况。解决方法是查看相应的库或框架的文档,确认其是否支持Android 9,并尝试更新到最新版本。

需要注意的是,由于没有提及具体的代码内容,以上只是一些常见的可能性,具体原因需要根据实际情况进行分析和调试。如果需要更具体的帮助,请提供相关的代码片段或错误信息,以便更好地帮助您解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从源码角度剖析Android系统EGL及GL线程

为什么在这个GL线程申请的texture不能在另外一个GL线程使用?如何打破这种限制等。...这段代码的作用是获取一个代表屏幕的对象,即EGLDisplay,传的参数是EGL10.EGL_DEFAULT_DISPLAY,代表获取默认的屏幕,因为有些设备上可能不止一个屏幕。 (2)初始化 ?...这段代码的作用是初始化屏幕。 (3)选择config ?...这段代码的作用是将渲染环境设置到当前线程,相当于让当前线程拥有了Open GL的绘图能力,为什么做了这步操作,线程就拥有了Open GL的绘图能力?后面会讲解。 接下来就是绘图逻辑了: ?...因此如果你自己创建了一个GL线程,当GL线程销毁时,如果你不主动销毁texture,那么texture实际上是不会自动销毁的。

7K122

Android,开源还是封闭?

前几天,我就在网志上写了自己的担忧: "首先,Android应用程序只能用java语言开发,莫非所有的应用程序都运行在一个巨大的虚拟机上?...好不容易,才有了一个这么受欢迎的开源手机系统,应该齐心协力、共同开发才对,为什么要"窝里斗"呢?到底是什么矛盾,使得Linux Kernel小组剔除Android代码呢?...现在,程序员只要写一次程序,就能在各种手机硬件平台之上使用。" 这段话解释了,为什么Android的应用程序,都必须用Java语言开发。因为不这样做的话,没法让程序做到硬件无关。...只要把源代码根据不同的平台,分别编译一下,同一个程序不也照样可以在不同的硬件架构、不同的Linux发行版中使用吗?...所以,Linux Kernel就把Android踢出去了,真是再正常不过了。 人们有权利质疑,Android这样的哲学是否正确?是否符合Google"不作恶"的口号?

69570
  • 译文《最常见的10种Java异常问题》

    非检查型异常(Unchecked) 2、异常管理的最佳实践箴言 3、为什么在try代码块中声明的变量不能在catch或者finally中被引用?...8、在 final 代码块中抛出异常 9、try语句有return那么finally还会执行吗? 10、为何有些开发人员对异常置之不理? ? 检查型异常(checked) vs....异常管理的最佳实践箴言 如果可以正确处理异常,则应将其捕获并处理,否则应将其抛出。 ? 为什么在try代码块中声明的变量不能在catch或者finally中被引用?...看下面这段代码,在try代码块中声明的 String s 就不能在catch中被引用, 这段代码在编译期是通不过的。...对于这个特定的示例,是正确的。 ? 为什么 Double.parseDouble(null) 和 Integer.parseInt(null) 抛出的异常不一样呢?

    68030

    Android 学习笔记思考篇

    不应该运行在独立的进程中吗?就算运行在主进程中那不应该运行在后台线程中吗? 文档中确实提醒过不要在主线程中进行耗时操作,那为什么在主线程中读写文件没有问题?甚至连警告都没有?...我们能不能不关心线程、线程池、Looper、Handler 什么的,我们就是想单纯地让这段代码异步执行而已,奥,原来有 AsyncTask 就不用关心这些了啊,那我们还需要维护这些 AsyncTask...相对于写异步代码我们更习惯于写同步代码,但不幸的是我们连 async / await 这样的关键字都没有 内存泄漏 内存泄漏是 Android 开发者讨论最多的话题之一,为什么 Android 开发者讨论的多...,就是一个文本控件 3 秒后显示一个新的文本,但是在 Android 中却是一个 “错误” 的用例,对于新手来说很容易写出上面的代码,它们可以正常编译运行且大部分情况下功能良好,如果像上面一样仅仅设置文本而不是显示对话框甚至不会出现崩溃...设计缺陷 Android 系统最受人诟病的问题就是卡,为什么 iOS 那么流畅而 Android 这么卡顿呢?

    60510

    关于Java异常Exception最常见的十大问题1 受检异常 VS 非受检异常2 异常管理的最佳实践3 为什么在try语句中定义的变量不能在catch和finally语句中使用?4 为什么Doubl

    Paste_Image.png 2 异常管理的最佳实践 如果一个异常能够被正确的处理,那么他就该捕获,反之,则该被抛出 3 为什么在try语句中定义的变量不能在catch和finally语句中使用?...The code does not pass compilation 下面这段代码,string s定义在try语句块中,然后却在catch语句中使用了s,这段程序是无法通过编译的 try {...这就是为什么try语句中定义的变量不能在catch和finally语句中使用。...像下面的代码 try { ... } catch(Exception e) { e.printStackTrace(); } 我们经常看到下面这种不处理异常的代码...,为什么不仔细处理异常呢?

    1.1K41

    【干货】Android 一线互联网面试题汇总,13模块200+题,征服面试官不是梦!

    为什么? 内存泄漏是什么? 什么情况导致内存泄漏? 如何防止线程的内存泄漏? 内存泄露的解决方法 内存泄漏和内存溢出区别? 如何对Android 应用进行性能分析以及优化? 怎么去除无用代码?...9.JNI 请介绍一下NDK 什么是NDK库? 如何在JNI中注册native函数,有几种注册方式? Java如何调用c、c++语言? JNI如何调用java层代码? 你用JNI来实现过什么功能吗?...5.0下和5.0上的保活方式了解吗?...为什么不能在子线程更新UI? LruCache默认内存缓存大小 ContentProvider的权限管理(解答:读写分离,权限控制-精确到表级,URL控制) 如何通过广播拦截和abort一条短信?...: 最后我在这里分享一下这段时间从朋友,大佬那里收集到的一些2019-2020BAT 面试真题解析,里面内容很多也很系统,包含了很多内容:Android 基础、Java 基础、Android 源码相关分析

    75201

    Android的进程与线程使用总结

    通过设置这个属性你可以让组件运行在特定的进程中。你可以设置成每个组件运行在自己的进程中,也可以让一些组件共享一个进程而其他的不这样。...如果一个 activity 正确的实现了它的生命周期回调函数,保存了自己的当前状态,那么kill这个activity所在的进程是不会对用户在视觉上的体验有影响的,因为当用户回退到这个 activity时...另外,Android的UI 线程不是线程安全的。所以你不能在一个worker 线程操作你的UI—你必须在UI线程上对你的UI进行操作。...比如,下面这段代码在一个额外的线程里面下载图片并在一个 ImageView显示: public void onClick(View v){ new Thread(new Runnable(){...http://example.com/image.png"); mImageView.setImageBitmap(b); } }).start();} 起先这段代码看起来不错

    1K70

    Flutter vs React Native

    Flutter 的设计目标是在 iOS 和 Android 系统上创建高质量界面,它是 Google 的移动开发框架。同时,它也是免费的开源工具,能和现有代码共同使用,甚至在最近越来越受欢迎。...Dart 程序可以在以下两种模式下运行: 检查模式 这种模式会启用动态类型和断言。如果代码中提供了静态类型,就可以打开类型断言。在开发和测试阶段建议使用检查模式,有助于捕捉代码中类型不匹配的错误。...下面这段 React Native 代码定义了字体样式和其他文本属性,都由 CSS 处理。...一段代码,两个平台 开发者只需写一次代码,就能在 Android 和 iOS 两个平台上运行。 Flutter 并不依赖于平台,因为它有自己的窗体和设计,所以你可以在两个平台上拥有同样的应用。...Flutter 能在 Android Jelly Bean 之后的版本和 iOS 8 之后的版本上运行。

    2.1K40

    Flutter vs React Native,谁才是跨平台应用开发的最佳利器?

    Flutter 的设计目标是在 iOS 和 Android 系统上创建高质量界面,它是 Google 的移动开发框架。同时,它也是免费的开源工具,能和现有代码共同使用,甚至在最近越来越受欢迎。...Dart 程序可以在以下两种模式下运行: 检查模式 这种模式会启用动态类型和断言。如果代码中提供了静态类型,就可以打开类型断言。在开发和测试阶段建议使用检查模式,有助于捕捉代码中类型不匹配的错误。...下面这段 React Native 代码定义了字体样式和其他文本属性,都由 CSS 处理。...一段代码,两个平台 开发者只需写一次代码,就能在 Android 和 iOS 两个平台上运行。 Flutter 并不依赖于平台,因为它有自己的窗体和设计,所以你可以在两个平台上拥有同样的应用。...Flutter 能在 Android Jelly Bean 之后的版本和 iOS 8 之后的版本上运行。

    2.5K20

    给初学者的RxJava2.0教程(七): Flowable

    Observable和Observer, 这次不一样的是上游变成了Flowable, 下游变成了Subscriber, 但是水管之间的连接还是通过subscribe(), 我们来看看最基本的用法吧: 这段代码中...带着这个疑问, 我们再来看看异步的情况: 这次我们同样去掉了request这句代码, 但是让上下游工作在不同的线程, 来看看运行结果: 哎, 这次上游正确的发送了所有的事件, 但是下游一个事件也没有收到...那么如何正确的去实现上游呢, 这里先卖个关子, 之后我们再来讲解. 学习了request, 我们就可以解释上面的两段代码了....然后我们再来看看第二段代码, 为什么上下游没有工作在同一个线程时, 上游却正确的发送了所有的事件呢?...那就来验证一下: 这里我们让上游一次性发送了128个事件, 下游一个也不接收, 来看看运行结果: 这段代码的运行结果很正常, 没有任何错误和异常, 上游仅仅是发送了128个事件.

    1.7K40

    hello Kotlin

    话说,Kotlin 是 JetBrain 公司搞出来的,运行在 JVM 上的一门静态类型语言,它是用波罗的海的一个小岛的名字命名的。...= null // 正确 使用时,则: ?...需要说明的是,这段代码是我从《Kotlin for Android Developer》的示例中摘出来的。...因为这段代码是 inline 的,最终编译时是要编译到调用它的代码块中,这时候T的类型实际上是确定的,因而 Kotlin 通过 reified 这个关键字告诉编译器,T 这个参数可不只是个摆设,我要把它当实际类型来用呢...当然有人会说我们应当有 proguard 做混淆,我想说的是,proguard 自然是要用到的,不过那是 SDK 这个产品加工的下一个环节了,我们为什么不能在代码级别把这个事情做好呢?

    93050

    Android开发必备知识:为什么说Kotlin值得一试

    话说,Kotlin 是 JetBrain 公司搞出来的,运行在 JVM 上的一门静态类型语言,它是用波罗的海的一个小岛的名字命名的。...= null // 正确 使用时,则: ?...需要说明的是,这段代码是我从《Kotlin for Android Developer》的示例中摘出来的。...因为这段代码是 inline 的,最终编译时是要编译到调用它的代码块中,这时候T的类型实际上是确定的,因而 Kotlin 通过 reified 这个关键字告诉编译器,T 这个参数可不只是个摆设,我要把它当实际类型来用呢...当然有人会说我们应当有 proguard 做混淆,我想说的是,proguard 自然是要用到的,不过那是 SDK 这个产品加工的下一个环节了,我们为什么不能在代码级别把这个事情做好呢?

    1.2K90

    JNI开发中,你需要知道的一些建议

    因此,使用者不能在线程间共享一个JNIEnv变量。...当这个类被初始化时这段代码将会执行一次。当这个类被卸载后而后再次载入时,这段代码将会再次执行。 局部和全局引用 每个传入Native方法的参数,以及大部分JNI函数返回的每个对象都是“局部引用”。...64位机问题 Android当前设计为运行在32位的平台上。理论上它也能够构建为64位的系统,但那不是现在的目标。...FAQ: 为什么FindClass不能找到我的类? 确保类名字符串有正确的格式。JNI类名称以包名开始,然后使用左斜杠来分隔,比如java/lang/String。...如果类名称看上去正确,可能运行时遇到了类加载器的问题。FindClass想在与代码相关的类加载器中开始查找指定的类。

    1.5K30

    Dropbox 是如何解决 Android App 的内存泄漏问题的?

    在 CI 上运行 LeakCanary 帮助我们学到了更好的编码模式,特别是涉及到新的库时,在任何代码进入生产环境前。...本质上讲,泄漏跟踪打印出与泄漏对象关联的引用链,并解释为什么将其视为泄漏。 关于如何阅读和使用泄漏跟踪,LeakCanary 有了很好的 文档,这里无需重复。...所以,如果可能的话,避免在类级变量中存储视图,或者确保在onDestroyView中正确地清理它们。 说到视图 / 数据绑定,Android 的视图绑定文档 明确地告诉我们:字段必须被清除以防止泄漏。...经过这段额外的时间后,泄漏可能就消失了。...image.png Android Studio 的内存分析器显示了清理暂时性泄漏的效果 经常测试,尽早修复 我们希望,通过本文介绍,你能在自己的应用程序中跟踪和解决内存泄漏!

    95930

    Dropbox 如何解决 Android App 的内存泄漏问题?

    在 CI 上运行 LeakCanary 帮助我们学到了更好的编码模式,特别是涉及到新的库时,在任何代码进入生产环境前。...事实证明,在编写测试时,我们没有正确地清理测试。...本质上讲,泄漏跟踪打印出与泄漏对象关联的引用链,并解释为什么将其视为泄漏。 关于如何阅读和使用泄漏跟踪,LeakCanary 有了很好的文档,这里无需重复。...视图 我们经常看到视图被声明为类级变量:private TextView myTextView;或者,现在有更多的 Android 代码正在用 Kotlin 编写:private lateinit var...经过这段额外的时间后,泄漏可能就消失了。 Android Studio 的内存分析器显示了清理暂时性泄漏的效果 经常测试,尽早修复 我们希望,通过本文介绍,你能在自己的应用程序中跟踪和解决内存泄漏!

    1.1K10

    Android 端相机相关开发经验总结

    本文主要总结下Android端相机相关开发的经验。 众所周知,Android平台不仅系统碎片化严重,而且不同手机的硬件配置差异导致开发某些模块的时候坑比较多,相机模块就是其中之一。为什么呢?...[img] 看到这段代码的时候我先是一愣,哟嚯,还有这种操作,666,转瞬一想,微微一笑,因为我发现这段代码很明显是可以优化的。...如果按照这段代码的逻辑,将导致这个手机每次启动相机的时候都会先用Camera2试一次,发现不行再用Camera1试一次,很明显这样会减慢相机的启动速度。...[img] 这段代码有什么问题呢?...相机开发详解 5.关于运行时权限:Android M 新的运行时权限开发者需要知道的一切

    3.9K30

    Camera development experience on Android

    本文主要总结下Android端相机相关开发的经验。 众所周知,Android平台不仅系统碎片化严重,而且不同手机的硬件配置差异导致开发某些模块的时候坑比较多,相机模块就是其中之一。为什么呢?...看到这段代码的时候我先是一愣,哟嚯,还有这种操作,666,转瞬一想,微微一笑,因为我发现这段代码很明显是可以优化的。...如果按照这段代码的逻辑,将导致这个手机每次启动相机的时候都会先用Camera2试一次,发现不行再用Camera1试一次,很明显这样会减慢相机的启动速度。...这段代码有什么问题呢?...API的使用的官方文档:Camera API 4.关于Camera API的使用:Android Camera 相机开发详解 5.关于运行时权限:Android M 新的运行时权限开发者需要知道的一切

    1.3K30

    Android Hook技术的学习经历分享

    给大家分享一下这段时间的学习经历,一方面我做一个学习的总结,另一方面也希望你可以从中吸取一些教训经验。 我大概是从4月20来号,因为需要了解android hook技术,并且将它利用到生产中。...然后第三天到来了,开始动手写代码,编译自己的so包,利用 substrate 进行hook,由于根据官网的介绍,需要安装一个它的apk,然后需要获取root运行权限,这完全不是我想要的,我分析:我程序是跟随目标程序一起启动的...,相当于它就是目标程序的一部分,为什么要root?...5月9号,在断绝了自己去实现注入框架的念想后,又了解到确实有人通过 substrate 实现无须root的注入功能后,那么证明绝对是可以的,然后开始检查为什么官方文档一定说要安装这个apk,并且需要root...本文中的hook技术,可以用在很多有价值,提升工作效率、改善代码依赖、增加系统安全上,也可以用在很多灰色产业上。

    1.6K31

    分享一个关于this对象的编程小技巧,如何使用箭头函数避免this对象混淆?

    在非全局作用域下指代“当前”对象 this是当前代码上下文执行环境中的一个属性,是一个在运行时确定身份,同时又不能在编码时指定的一个动态对象。...例如看下面这段代码: // 取决于谁调用它 let obj = { prop: 60, func: function() { return this.prop; } }; console.log...(obj.func()); // 60 在这段代码中,func是由obj调用的,所以在func方法内部,this就指代obj这个对象。...微信三端,包括iOS、Android与开发者工具,对小程序运行环境的实现并不一致。在开发者工具中,渲染是基于Chrome WebView实现的,这实际上仍然是一个浏览器的宿主环境。...apply与call的使用方法是类型的,也是在第一个参数的地方传递this对象;不同处在于bind只绑定不执行,而后两者是马上执行的。

    1.2K41
    领券