首页
学习
活动
专区
工具
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实际是不会自动销毁的。

6.9K122

Android,开源还是封闭?

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

68170
  • Android初学者的Gradle知识普及

    时代过来的对 ADT 应该都不陌生,正是因为有了 ADT ,从此我们只需要码好代码,然后直接在 Eclipse 上进行编译、运行、签名、打包等一系列流程,而这背后的工作都是 ADT 的功劳。...在推出 AS 的时候选中了 Gradle 作为构建工具,为了支持 Gradle 能在 AS 使用,Google 做了个 AS 的插件叫 Android Gradle Plugin ,所以我们能在 AS...有人有疑问,我 AS 上明明已经可以正常运行该项目的,说明 Gradle 已经下载过了,为什么命令行还要再下载一次?...如何正确导入下载的开源项目?...我们经常会在 GitHub 发现一些优秀的开源项目,然后想要下载学习,然而第一步一般都是把源码导入到 AS 里,然后运行起来看下效果,但是经常会运行失败,这里我来给大家说下导入开源项目的正确姿势: 下载一个

    63520

    译文《最常见的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) 抛出的异常不一样呢?

    67730

    关于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 学习笔记思考篇

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

    60210

    【干货】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 源码相关分析

    74901

    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.4K20

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

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

    1.6K30

    hello Kotlin

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

    92050

    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.4K30

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

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

    95230

    分享一个关于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.1K41

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

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

    1.1K10

    Camera development experience on Android

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

    1.3K30

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

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

    3.9K30

    Android Hook技术的学习经历分享

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

    1.5K31
    领券