学习笔记<一> 同一project多module引用同一个jar

       同一个项目中多个module存在多个相同命名的jar,且版本不同时易造成引入了jar包但找不到相关的类。这种情况相对来说是比较少的。一般情况下一个工程下只有一个主module,其他的都是library库文件,但也不排斥有这种情况发生。
       先说说我遇到的情况吧:在学习讯飞语音过程中,下载了多个版本的sdk和demo,其中每个module都应该引用各自的Msc.jar。但似乎由于 Android studio限制了一个project只能引入一个同名的jar,因而造成新版本的demo里找不到部分相关的类和方法。

一、查看当前项目引入的jar文件的本地存储路径(即项目中进入jar但jar看不到内容)
       引用后的jar在项目.idea/libraries下会生成以jar包名的xml文件,打开相应文件即可查看相应的路径。 如scmclient项目引用的Msc.jar,其.idea/libraries/Msc.xml内容如下:

     <component name="libraryTable">
        <library name="Msc">
          <CLASSES>
            <root url="jar://$PROJECT_DIR$/scmclient84/libs/Msc.jar!/" />
          </CLASSES>
          <JAVADOC />
          <SOURCES />
        </library>
     </component>

二、解决方法
      (1)将多个module分为多个project,各自引用各自的jar
      (2)将版本高的(一般版本高的都能兼容版本低的)复制到引用的jar的目录下
      (3)这点的原理与(2)相同,直接将相关.idea/libraries/xx.xml里的url改为所需的jar路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值