如何将一个项目转为library导入到另一个项目中以及遇到的坑和解决办法

这篇博客记录了将一个Android项目转化为Library并导入到另一个项目的过程,包括遇到的编译错误和资源冲突问题。博主详细解释了如何解决switch case报错、Butterknife编译错误以及资源ID冲突的问题,并提供了相应的解决方案。同时提醒开发者,避免在Library项目和主项目中使用相同的资源名称,以防止不必要的冲突。
摘要由CSDN通过智能技术生成

博主开发小白一个,第一次自己写博客,将最近做的项目遇到的问题总结一下,有遇到相同bug的可以参考参考。

今天老板要将之前写的一个商场APP嵌入到现在的项目中,好吧,老板最大,没办法,也只能开搞了.....   当开始做的时候,想的就是将项目转为library再导入当前的项目中,想到就做,马上就开搞,首先将build.gradle中改成  Sync Now,然后你会发现报错了,为什么呢 ,原来库文件不能有,把这行删掉 再Sync Now就好了。这样就可以了吗?只能说你太天真了,这只是把项目转为library的第一步,接下来还需要将library文件导入到当前项目中。那么怎么导入呢 ,别急,听博主慢慢道来.首先选择new-> Import Module,选择我们之前准备好的library,将library导入进来,导入进来后,发现没什么问题,然后你在主项目设置了点击跳转到library中写好的一个activity中,运行后,你会发现一片飘红,报错需要常量表达式.....what,这是什么情况,原来library中switch case分支后面跟着的必须是常量,换句话说出现这个问题的原因是Android library中生成的R.java中的资源ID不是常数,,解决办法网上也很多,也就不说为什么会这样了(其实我也不太明白),只要把switch case改成if else 就行了OK,这个bug解决,离成功又近了一步。想想还有点小激动\(^o^)/~。

如果绑定控件id用的是findviewbyid就不会报错,如果是用的Butterknife,那么恭喜你,也一样会报错需要常量表达式那么这个问题该怎么解决呢,其实这个是Butterknife的一个bug,在8.4.0版本已经解决了,当然,博主现在使用的版本已经是最新版的8.6.0了。那么我们先按Butterknife官网给的解决方案试一下。

Library projects

To use Butter Knife in a library, add the plugin to your buildscript:

buildscript {
  repositories {
    mavenCentral()
   }
  dependencies {
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.6.0'
  }
}

and then apply it in your module:

apply plugin: 'com.android.library
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值