修改包名导致R文件无法生成的问题解决方案

本文介绍了解决Android开发中因更改包名而导致R文件无法更新的问题。通过在Module级的build.gradle文件中声明包名并同步项目,可以生成新的R文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发中遇到一个问题。导入的Module中,我修改了包名导致Moudule下引用的R文件无法生成新的。比如原来的包名是com.a.b。文件中引用的R文件就是com.a.b.R,修改后包名变成com.c.b,文件中的R文件的路径自动修改成了com.c.b.R。

第一反应就是修改Module下的清单文件中的packname,但是已经自动修改过了,无论怎么clean项目,rebuild项目都不行,手动删除项目里的build文件夹下的文件,然后再rebuild项目也不行。反而原来的com.a.b.R是可以访问到的。 

解决方案:

在Moudle级的build.gradle文件中添加包名的声明,此处的声明的级别是高于清单文件的,添加完以后sync now。

android {
    compileSdkVersion 31
    defaultConfig {
        applicationId "com.c.b"     //修改后的包名。原来是com.a.b   
        minSdkVersion 23
        targetSdkVersion 31
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'

    }
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

然后Moudule中的新的R文件就生成了。

但是作为lib引入的Module在程序编译的时候是不允许在这里声明applicationId的,所以在生成新的R文件之后需要再把这行代码删除掉。然后主程序就可以正常build了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值