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

【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )

文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; Android 的编译版本...和 目标版本 都升级为 30 之后 , Kotlin 的编译检查变得严格 , 之前不规范的代码需要逐个修改 ; 编译版本 compileSdkVersion 和 目标版本 targetSdkVersion...由 28 修改为 30 ; android { compileSdkVersion 30 buildToolsVersion "29.0.2" defaultConfig {...but String was expected 在 编译版本 compileSdkVersion 和 目标版本 targetSdkVersion 都为 28 时 , 编译不报上述错误 ; 改了下...类型 , 这个类型传入只接收非空类型作为参数的方法中 , 就出现了上述编译报错 ; 解决方案一 : 方法的参数修改为可以接收可空类型的参数 , 接收的参数类型改为 String?

2.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

【错误记录】Kotlin 编译报错 ( Smart cast to ‘Xxx‘ is impossible, because ‘xxx‘ is a mutable property ... )

文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; Android 的编译版本...和 目标版本 都升级为 30 之后 , Kotlin 的编译检查变得严格 , 之前不规范的代码需要逐个修改 ; 编译版本 compileSdkVersion 和 目标版本 targetSdkVersion...由 28 修改为 30 ; android { compileSdkVersion 30 buildToolsVersion "29.0.2" defaultConfig {...applicationId "com.xxx.xxx" minSdkVersion 19 targetSdkVersion 30 versionCode...compileSdkVersion 和 目标版本 targetSdkVersion 都为 28 时 , 编译不报上述错误 ; 改了下 Android 编译版本号 , 报了 286 个错误 ,

2.2K20

【错误记录】Kotlin 编译报错 ( Class ‘Xxx‘ is not abstract and does not implement abstract member )

文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; Android 的编译版本...和 目标版本 都升级为 30 之后 , Kotlin 的编译检查变得严格 , 之前不规范的代码需要逐个修改 ; 编译版本 compileSdkVersion 和 目标版本 targetSdkVersion...由 28 修改为 30 ; android { compileSdkVersion 30 buildToolsVersion "29.0.2" defaultConfig {...applicationId "com.xxx.xxx" minSdkVersion 19 targetSdkVersion 30 versionCode...compileSdkVersion 和 目标版本 targetSdkVersion 都为 28 时 , 编译不报上述错误 ; 改了下 Android 编译版本号 , 报了 286 个错误 ,

2K20

【错误记录】Kotlin 编译报错 ( Not nullable value required to call an ‘iterator()‘ method on for-loop range )

文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; Android 的编译版本...和 目标版本 都升级为 30 之后 , Kotlin 的编译检查变得严格 , 之前不规范的代码需要逐个修改 ; 编译版本 compileSdkVersion 和 目标版本 targetSdkVersion...由 28 修改为 30 ; android { compileSdkVersion 30 buildToolsVersion "29.0.2" defaultConfig {...applicationId "com.xxx.xxx" minSdkVersion 19 targetSdkVersion 30 versionCode...compileSdkVersion 和 目标版本 targetSdkVersion 都为 28 时 , 编译不报上述错误 ; 改了下 Android 编译版本号 , 报了 286 个错误 ,

1.1K20

学(kao)习(bei)官方关于64k异常处理 ^_^

使用这些技巧使我们不必在应用中启用 Dalvik 可执行文件分包,同时还会减小 APK 的总体大小。...public class MyApplication extends MultiDexApplication { ... } 或者,如果替换了 Application 类,但无法更改基本类,则可以改为替换...如果启动期间需要的任何类未在主 DEX 文件中提供,那么应用崩溃并出现错误 java.lang.NoClassDefFoundError。...该设置启用一个名为 pre-dexing 的构建功能,此功能使用仅适用于 Android 5.0(API 级别 21)和更高版本的 ART 格式更快生成 Dalvik 可执行文件分包输出。...这些设置会使适用于 Gradle 的 Android 插件执行以下操作: 执行 pre-dexing:每个应用模块和每个依赖项构建为单独的 DEX 文件; 每个 DEX 文件加入 APK,并且不做任何修改

95320

【错误记录】Kotlin 编译报错 ( Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable ... )

文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; Android 的编译版本...和 目标版本 都升级为 30 之后 , Kotlin 的编译检查变得严格 , 之前不规范的代码需要逐个修改 ; 编译版本 compileSdkVersion 和 目标版本 targetSdkVersion...由 28 修改为 30 ; android { compileSdkVersion 30 buildToolsVersion "29.0.2" defaultConfig {...applicationId "com.xxx.xxx" minSdkVersion 19 targetSdkVersion 30 versionCode...在 编译版本 compileSdkVersion 和 目标版本 targetSdkVersion 都为 28 时 , 编译不报上述错误 ; 改了下 Android 编译版本号 , 报了 286

68320

Multidex记录一:介绍和使用

对于DEX文件,则是工程所需全部class文件合并且压缩到一个DEX文件期间,也就是Android打包的DEX过程中, 单个DEX文件可被引用的方法总数(自己开发的代码以及所引用的Android框架、...Android 5.0 及更高版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)及更高版本使用名为 ART 的运行时,后者原生支持从 APK 文件加载多个 DEX...配置您的应用进行 Dalvik 可执行文件分包 您的应用项目设置为使用 Dalvik 可执行文件分包配置需要对您的应用项目进行以下修改,具体取决于应用支持的最低 Android 版本。...public class MyApplication extends MultiDexApplication { ... } 或者,如果您替换了 Application 类,但无法更改基本类,则可以改为替换...如果启动期间需要的任何类未在主 DEX 文件中提供,那么您的应用崩溃并出现错误 java.lang.NoClassDefFoundError。

1.6K10

apktool的下载,安装,反编译和重新打包

解压后的项目目录 -o 新apk的名字 // 重新打包生成的 apk 需要签名才能安装 3.拓展反编译的配置 #-api, --api-level 指定生成smali文件所用的api等级,默认使用targetSdkVersion...#-m, --match-original 各文件处理为最接近原生的形式,将会导致不能备重新打包。 Ps:我试了下,格式确实接近原生,但是我重新打包也是成功了(打包成功,但并未签名安装)。...#-o, --output 指定输出目录 #--only-main-classes 只反编译apk根目录下的dex文件,如:classes[0-9].dex 通过阅读源码发现,此配置的作用为...:反编译根目录下的以 classes 开头,并以 .dex 结尾的dex文件,不仅限于0-9 #-p, --frame-path 指定存储和加载framework的目录 #-r, --...将会在2.5.0版本移除此功能。

7.4K30

Android 9.0适配及部分新特性介绍

1、Android 9.0应用迁移 1.1 概述 在最开始针对速贷进行Android9.0版本的适配时,我使用的是真机是vivo X21A,targetSdkVersion升到28,运行发现网络请求全报...严格的 UTF-8 解码器:在 Android 9 中,针对 Java 语言的 UTF-8 解码器比以往严格,并且遵循 Unicode 标准。...1.2.2 targetSdkVersion 设置为 28 时影响应用的关键变化(列举了常用的,具体看官方文档): * 默认情况下启用网络传输层安全协议 (TLS):如果应用以 Android 9 或更高版本为目标平台...如果您的应用需要访问设备的硬件序列号,您应改为请求 READ_PHONE_STATE 权限,然后调用 getSerial()。 其中星号*标注的是我在项目中添加的修改部分。...针对问题三:测试了一下只有targetSdkVersion 设置为 28时才会出现该问题,与设备的系统版本无关,上蚂蚁金服平台查了下最新文档发现,App支付功能近期有了更新和升级,具体来说就是:打包方式更换为

3.3K40

【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

其中 proguard-android-optimize.txt 是默认的混淆配置文件 , 由系统自动生成 ; proguard-rules.pro 是用户自己配置的混淆配置文件 , 在进行打包时 , 这两个...plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdkVersion 30..."30.0.3" defaultConfig { applicationId "kim.hsl.svg" minSdkVersion 18 targetSdkVersion...kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.3.2' // 矢量图支持库 , 支持 5.0 以下版本手机使用矢量图...Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt ) 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息转为原始报错信息

3.7K20

实现Android APK瘦身99.99%

让我们这一原则应用到 Android App 开发中。我们玩转一个称为“ApkGolf”的 APK,目的是创建一个尽可能具有最少字节数的 App,并可安装在运行 Oreo 的设备上。...App 名称(优化为 6034 字节,削减 4%) 下面我们删除strings.xml文件,并将AndroidManifest中的android:label属性值更改为“A”。...我们应该可以在削减文件规模的同时,得到一个漂亮的图标。 android:icon="@android:drawable/btn_star" ?...压缩破解(Compression Hack)(优化为 2599 个字节,削减 0.5%) 让我们剩余的字符串都更改为‘c’,更新版本为 26,然后生成一个签名的 APK。...头四个字节编码了38,是与 Dex 文件所使用的版本相同。随后的两个字节编码为660,这无疑是文件的大小。

1.8K30

非 SDK 接口常见问题 | Android 开发者 FAQ Vol.13

A:以下为各名单的具体说明: 白名单:SDK 本身 浅灰名单:仍允许调用的非 SDK 方法和字段 深灰名单 若应用的 target SDK 低于 Android P (即 targetSdkVersion...在 Andrid P 最终版本中:Toast 信息只在调试版本的应用中显示;同时仅在非 SDK 接口调用被拒绝的情况下,系统才会打印 logcat 信息。...A:这些名单被编码在平台 dex 文件中的字段和方法的访问标志中。系统映像中没有包含这些名单的单独文件。 API 名单相关问题 Q6: 搭载同一版本的不同设备是否共同一套黑名单 (或灰名单)?...此外: 开发者预览版 1 无黑名单,仅有浅灰和深灰名单警告; Beta 1 所有深灰名单条目移至黑名单; Beta 2 大部分黑名单中的接口移至深灰名单。...我们会加大调用非 SDK 接口的难度,确保应用兼容性,与此同时找到一个比较好的平衡点,方便运行时的调试。我们继续开展具体实现的评估工作,与开发者保持积极合作。

1.3K30

【Android 安装包优化】开启资源压缩 ( 资源压缩配置 | 启用严格模式的资源引用检查 | 自定义保留移除资源配置 | 资源压缩效果 )

混淆文件编写 | 混淆前后对比 ) 博客 ; 编译打包时 , 先进行代码压缩混淆 , 删除不必要的代码 ; 然后使用资源压缩器移除不相关的资源 ; ( 先处理代码 , 再处理资源 ) 资源压缩不是简单的资源删除...plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdkVersion 30..."30.0.3" defaultConfig { applicationId "kim.hsl.svg" minSdkVersion 18 targetSdkVersion...kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.3.2' // 矢量图支持库 , 支持 5.0 以下版本手机使用矢量图...Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt ) 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息转为原始报错信息

1.3K40

解决插件化资源id冲突

为res目录下的资源生成R.java文件,同时为AndroidManifest.xml生成Manifest.java文件 第二步:aidl。...混淆同时生成proguardMapping.txt。这一步是可选的 第五步:dex。把所有的class文件(包括第三方库的class文件)转换成dex文件 第六步:aapt。...所有的dex文件、ap_文件、AndroidManifest.xml打包为.apk文件,这是一个未签名的apk包 第八步:jarsigner。对apk进行签名 第九步:zipaligin。...defaultConfig { applicationId "jianqiang.com.testreflection" minSdkVersion 21 targetSdkVersion...app根路径下的mac_aapt 方案1.2:在插件apk打包后,修改R,java和resources.arsc中存储的资源id值,比如默认的0x7f前缀,修改为0x71,这样就保证了宿主和插件的资源id

2.9K21

Android P 开发者预览版首发!

ART 现可使用配置文件信息在设备上重写 DEX 文件,在多个人气的应用中内存占用减少高达 11%。我们期望这样借此减少系统 DEX 内存使用量并加快应用启动时间。...正如我们最近宣布的那样 ,Google Play 将要求所有应用在 2018 年 11 月之前针对 Android Oreo (targetSdkVersion 26 或更高版本) 进行更新,并支持将在...在做出这些改变的同时,Android P 将在安装针对 Android 4.2 之前的平台 (targetSdkVersion 小于17) 的应用时通过对话框向用户发出警告,未来平台将会继续提高版本下限...接下来, 您应用的目标平台更改为 "P",并使用完整的 Android P 体验运行。...应用的 targetSdkVersion 设置为 "P" 和 compileSdkVersion 设置为 "android-P",构建并测试。

1.2K20
领券