修改包名后APK编译失败,如何解决Kotlin未解析引用错误?
修改包名后Kotlin编译错误的解决办法
这些Unresolved reference错误都是资源引用失效导致的,毕竟刚改完包名,按下面步骤排查:
检查R类导入语句
每个报错的Kotlin文件顶部,确认导入的R类是当前新包名的。比如原来的import com.oldpackagename.R要改成import com.avantguardvpn.unlimited.freevpn.best.proxyvpn.R。要是代码里用了android.R开头的引用,也得换成自己项目的R(比如把android.R.id.button改成R.id.button)。清理重建项目
Android Studio缓存容易出问题,直接操作:- 点顶部菜单栏
Build→Clean Project - 接着点
Build→Rebuild Project - 要是还不行,手动删掉项目根目录的
.idea文件夹和app目录下的build文件夹,再点File→Sync Project with Gradle Files重新同步。
- 点顶部菜单栏
确认资源文件存在
逐个核对报错里的资源:id对应的控件ID,去布局文件里找有没有定义color对应的颜色值,检查res/values/colors.xml里是否存在drawable对应的图片,看看res/drawable或res/mipmap目录里有没有,注意资源文件名必须全小写string对应的字符串,去res/values/strings.xml里确认存在layout对应的布局文件,检查res/layout目录下有没有
核对Gradle和Manifest里的包名
打开app/build.gradle(或者build.gradle.kts),确认applicationId是com.avantguardvpn.unlimited.freevpn.best.proxyvpn;再打开AndroidManifest.xml,看看根标签的package属性是否和这个一致。两者不一致会导致R类生成路径错误。排查Release编译的混淆问题
你这是Release编译报错,看看proguard-rules.pro里有没有错误规则把R类混淆了。可以先临时关掉混淆(把minifyEnabled改成false)试试能不能编译过,能的话再慢慢调整混淆规则。
内容的提问来源于stack exchange,提问作者janindu hansaka
相关产品推荐
相关产品推荐

