如何在Android Studio应用中导入SlindingMenu类库

本文详细介绍了如何在AndroidStudio环境下导入并正确使用SlindingMenu和ActionBarSherlock类库,包括解决类库导入失败、版本冲突等问题的方法。

SlindingMenu是较好的用来实现侧滑菜单的开源类库,你可以在GitHub上找到相关代码(https://github.com/jfeinstein10/SlidingMenu)。

但是技术人员打算将相应类库加入到自己的软件中时,会遇到各种问题。网上已有人针对EClips+ADT开发环境,给出了应对方法。本文则说明如何在Android Studio上完成类库的导入和引用。

Android Studio是谷歌公司官方的开发环境,用起来比较方便,某些功能优于EC+ADT。

SlindingMenu是滑动菜单开源类库,位于(https://github.com/jfeinstein10/SlidingMenu)

ActionBarSherLock是SlindingMenu使用了开源类库,位于(https://github.com/JakeWharton/ActionBarSherlock)


要在Android Studio中使用SlindingMenu往往会遇到一系列问题,我们从问题开始。

1、常见问题描述

(1)类库导入失败

(2)导入后编译失败,提示版本错误,或者一系列 ”Attribute "XXX" has already been defined.

2、问题分析

对于问题1,Android Studio会自动识别导入类库的编译版本参数,如果不是当前安装的版本,会尝试自动下载相应的SDK,可能导致导入中断且不可自动修复,比如类库使用API14的版本SDK,而此版本已无法自动下载。

对于问题2,主要是导入的多个类库使用的Android-support v4.jar的版本不一致,或者同事使用了Android-Support V4和Android AppCompat V7导致冲突。

3、实战解决方法

(0)基本环境:Mac OSX,Android Studio 1.2.2,下载了SDK 22,下载了SlindingMenu和ActionBarSherLock并解压缩。

(1)创建工程:首先在Android Studio中创建一个新工程,选Blank Activity,一路NEXT到结束

选择app,右键菜单选Open Modules Setting,选Dependencies,可以看到com.android.support:appcompat-V7:22,这已经为冲突埋下了地雷,先不管他,后面再改。

(2)导入类库:先导入ActionBarSherLock,为避免导入出现问题,先修改ActionBarSherLock目录下的build.gradle,将apply plugin: 'android-library'改为'com.android.librar',将compileSdkVersion XX buildToolsVersion 'XX.x.x'改为你刚才创建应用的版本。

执行导入命令,使用File->New->Import Module,目录为~/ActionBarSherlock-master/actionbarsherlock,module name::actionbarsherlock.现在你的工程中有了actionbarsherlock,导入正常,工程目录下把类库的目录和文件都复制了一份。

接着导入SlindingMenu,同样首先修改build.gradle中版本设置,执行导入命令,使用File->New->Import Module,目录为~/SlidingMenu-master/library,mudule name::slindingmenu.

(3)消除类库Jar包冲突:为避免两个类库使用Android-Support V4.jar包版本冲突,将Android SDK中相同的文件分别复制到两个类库的lib目录下,源文件可在Android/sdk/extras/android/support/v4中找到,如果找不到这目录和文件,可用SDK Manager下载Extras下的android support library。

(4)让类库和应用使用正确的包:在Module Setting界面中,左边选择2个类库,右边的Dependencies中加入刚复制过来的Android-support v4.jar包,其他可删掉。

左边选择你创建的app,右边的Dependencies中添加Module Dependence,把两个类库加进来。此时编译,出现一系列 ”Attribute "XXX" has already been defined.错误,这是V4和APPCOMPT V7冲突了。

(5)消除V4 V7冲突:在Module Setting中,左边选app,右边删除com.android.support.appcompat v7 xx.x。编译出现 No Resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'。

(5.1)打开app中的AndroidManifest.xml,里面的theme修改为android:theme="@style/Theme.Sherlock"

(5.2)打开app中的style.xml,里面的AppTheme的修改为 <style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar" />

(5.3)打开app中的menu_main.xml,删除app:showAsAction="never"(改为android:showAsAction也行)

(5.4)打开MainActivity.java,删除import android.support.v7.app.ActionBarActivity,让窗口直接继承android.app.Activity。

(6)编译程序正常通过。好了,现在可以在你的应用中调用SlindingMenu了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值