androidStudio导入其他项目作为module依赖库

  • Post author:
  • Post category:其他


操作步骤:


(1) 添加module

(2) 选择你要的项目导入进来

(3) 导入进来以后,可能项目原先有以app命名的module,改成其他名字,不要和现有项目的module重名就好了

(1)导入module

(2)选择将要作为lib的module

(3)加载后,选择File->Project Structure 开始添加依赖,选择module dependency,再选择刚导入进来的module作为依赖。

二、

接下来就是一大堆bug科普时间:

(1)’Error:Execution failed for task ‘:app:processDebugManifest’.

> Manifest merger failed with multiple errors, see logs’

这个是主module与依赖module的androidManifest.xml合并时有些相同属性:android:name、android:icon等引起的冲突

解决:此时看报错的具体信息(点击黄色框按钮可以看到黄框具体红色报错信息)

可以看到是我的主项目module:app和依赖项目module:myapplication两个androidManifest.xml出现相同属性不同赋值的冲突。

修改的话是在主项目module的androidManifest.xml文件中添加如下

<manifest 节点添加:xmlns:tools=”http://schemas.android.com/tools”

<application 节点添加:tools:replace=”android:icon,android:theme,android:allowBackup,android:name”

(此处看你冲突的是哪些属性,就加哪些属性)

(2)修改依赖module的build.gradle文件(因为不是作为一个app,所以要将applicationId删掉)

(3)运行主项目app是会发现有两个图标,原因是依赖项目module的默认主启动Activity造成的,所以只需修改依赖项目module的androidManifest.xml,将<intent-filter>节点删除

(4)”No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse”可能会出现类似这种找不到某种资源的错误。

注意到上面是api24版本下找不到该资源,这个主要是你的compileSdkVersion和targetSdkVersion的设置问题,检查一下,发现我设的是23,此时我们将其改成24,编译运行解决问题。如果你的sdk没有下载某个api版本,可以先联网下载,此处下载不用担心被和谐。

还有一个需要注意的问题是,主项目module和依赖项目module的build.gadle文件中,

comileSdkVersion、buildToolsVersion、minSdkVerion、targetSdkVersion这些版本号两个build.gradle文件最好设置成一样的,因为是在同一项目、同一环境下运行了,所以设置成一样的。