频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
关于Android Studio 导入Library Project 以及遇到的一些问题
2017-03-16 15:52:00         来源:Gxiaoqin的博客  
收藏   我要投稿

关于Android Studio 导入Library Project 以及遇到的一些问题,在项目根目录下建立一个libraries文件夹,移动你要使用的library project到libraries目录(复制到工程的话,复制过来的库工程里面的src目录下的代码会丢失)。

注意:你的library project一定要保证有自己的build.gradle,如果没有,应该用Eclipse导出该工程

在Eclipse中选择要导出的项目,然后依次选择菜单 file->export->Android->Generate Gradle buildfiles. 之后依次点击next到finish即可

关于Android Studio如何导入library project - ebirdfighter - ebirdfighter的博客

回到Android studio

打开settings.gradle,添加include ':libraries:你的库工程名称'

关于Android Studio如何导入library project - ebirdfighter - ebirdfighter的博客

ctrl+alt+shift+s 打开 project structure 在左侧面板选中module,在中间面板选中module名,再在右边面板选中denpendecies

在面板的最右边出现一个加号,点击+号,选择第三项moduledenpendecy

关于Android Studio如何导入library project - ebirdfighter - ebirdfighter的博客

此时弹出一个对话框,显示你的library project ,选中它,点击OK,最后在project structure面板依次点击Apply,OK

关于Android Studio如何导入library project - ebirdfighter - ebirdfighter的博客

完成以上步骤,有可能会遇到如下问题:

1 报错:类似于:

关于Android Studio如何导入library project - ebirdfighter - ebirdfighter的博客

那是因为你的library project的build.gradle里的配置的SDK版本与你现有工程的build.gradle所配置的SDK版本不一致,修改library project的build.gradle里的SDK版本,使它与现有工程一致就可以解决

例如library project的build.gradle

关于Android Studio如何导入library project - ebirdfighter - ebirdfighter的博客

原有工程的build.gradle

关于Android Studio如何导入library project - ebirdfighter - ebirdfighter的博客

把library project的build.gradle对应的字段值参照原有工程来修改,修改完毕后,rebuild一下工程

2 在rebuild工程后仍报错

关于Android Studio如何导入library project - ebirdfighter - ebirdfighter的博客

此时依次打开File--Invalidate Caches/Restart,弹出对话框

关于Android Studio如何导入library project - ebirdfighter - ebirdfighter的博客

点击第一项Invalidate and Restart,待Android studio重启即可解决问题,然后你就可以用上你的library project了

上面是一种可能,今天我在导入XListView第三方类库的时候踩了两个坑,折腾了我一上午了,呜呜。

第一个:

The method initializeScrollbars(TypedArray) is undefined for the type PLA_AbsListView

这个错误,很多人认为是 API版本太低,initializeScrollbars这个函数没有办法用,

真正的解决方法是采用:反射的机制来搞定,因为,我们知道方法名,方法的参数,所以就可以这样做,

final TypedArray a = context.getTheme().obtainStyledAttributes(new int[0]);

try {

// initializeScrollbars(TypedArray)

Method initializeScrollbars = android.view.View.class.getDeclaredMethod("initializeScrollbars", TypedArray.class);

initializeScrollbars.invoke(this, a);

} catch (Exception e) {

e.printStackTrace();

}

这种方法是最有效果的,

一般这种错误是出现在自定义的view中的构造函数里面。

第二个:

F:\WORKSPACE\STUDIO_20150715\MmAlbum2\app\src\main\AndroidManifest.xml:19:9-43 Error: Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:19:9-43 is also present at [com.github.2359media:EasyAndroidAnimations:0.8] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher)

Suggestion: add 'tools:replace="android:icon"' to element at AndroidManifest.xml:17:5-58:19 to overrideError:Execution failed for task ':android:processDebugManifest'.> Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:19:9-43 is also present at [com.github.2359media:EasyAndroidAnimations:0.8] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher)

Suggestion: add 'tools:replace="android:icon"' to element at AndroidManifest.xml:17:5-58:19 to override

解决方法:

具体:

1.在Manifest标签下添加 tag:xmlns:tools=”https://schemas.android.com/tools”

2.在Application标签下添加tag:

tools:replace=”android:icon”

不出意外就能解决啦。

点击复制链接 与好友分享!回本站首页
上一篇:Android Studio调试工具总结
下一篇:Android Binder机制(2) ContextManager注册过程分析
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站