如何在不移动/复制/修改的情况下引入外部非Android Eclipse库到Android Studio?
解决Android Studio引入非Gradle Eclipse库的问题
嘿,这个问题我之前也踩过坑!你之前的配置不管用,核心原因是那个Eclipse库没有Gradle配置文件(build.gradle),Gradle根本没法把它当成一个可识别的项目来处理,所以才会报找不到:abc的错误。
不用慌,给你两个靠谱的方案,都能保证原库完全不动:
方案一:直接引入源码(最推荐)
这个方法不需要修改原库,也不用额外编译jar,直接让Android Studio把Eclipse库的源码当成自己项目的一部分来编译:
- 打开你Android项目中app模块的
build.gradle(注意是app文件夹下的那个,不是根目录的) - 在
android代码块里添加sourceSets配置,根据库的实际结构调整路径:
android { // 保留你原来的compileSdk、defaultConfig等配置... sourceSets { main { // 引入Eclipse库的Java源码目录 java { srcDirs += '../abc/src' } // 如果库有res资源目录,加上这行 res { srcDirs += '../abc/res' } // 如果库有assets资源目录,加上这行 assets { srcDirs += '../abc/assets' } } } }
- 点击Android Studio右上角的"Sync Now"同步Gradle,搞定!
注意:路径要准确!因为你的项目和
abc库在同一父目录下,../abc/src就是指向库的源码文件夹,别写错路径或者多打空格(你之前的配置里../abc多了个空格,这也是个小坑哦)。
方案二:编译成Jar包依赖
如果方案一不适用(比如库的结构比较特殊),可以用Eclipse把库编译成Jar包,然后在Android项目里依赖这个Jar:
- 打开Eclipse,导入那个
abc库,右键选择"Export" -> "Java" -> "JAR file",导出Jar到一个你方便的位置(别导出到原库目录里,避免改动原库) - 在你的Android项目的
app/libs文件夹里新建一个文件夹(比如external-libs),把导出的Jar放进去 - 在app模块的
build.gradle里添加依赖:
dependencies { // 其他依赖... implementation files('libs/external-libs/abc.jar') }
- 同步Gradle即可
另外要注意:如果这个Eclipse库本身还有第三方依赖,你得手动把那些依赖也加到你的Android项目里,Gradle可没法自动识别Eclipse的依赖关系哦!
内容的提问来源于stack exchange,提问作者Armai
相关产品推荐
相关产品推荐

