Android studio import module问题集锦.
来源:互联网 发布:手机语音读书软件 编辑:程序博客网 时间:2024/05/29 15:00
导入项目作为依赖的问题集锦!!
首先是导入Module方法介绍
- 启动AndroidStudio后,打开你需要接收Library的项目。比如有两个项目,项目A,和Library项目B,那么打开项目A。
- 在下拉菜单中依次找到New— —Import Module,点击打开项目导入窗口。注意导入的是Module而不是Project,如果是Project的话AndroidStudio会自动打开一个新的窗口编辑,那样的话就是不Library了。
- 在打开的窗口中点击右侧的”…”浏览窗口,在文件夹窗口中找到你要导入的Library项目的位置,选择后点击底部的OK按钮导入。
- 导入窗口中显示了该Module(项目)的详细信息,点击Finish完成导入。需要注意的是导入到AndoridStudio项目中的Library也必须是AndroidStudio项目,不能是Eclipse项目,如果是Eclipse项目的话,需要选择导出AndroidStudio项目。
- 在项目首页中选择Project标签,可以看到项目的文件结构图中多出了我们刚才导入的项目。Library的导入就完成了。
接下来是一些配置,把该library导入到主项目中
- 点击顶部左上角的File菜单,在出现的下拉菜单中找到Project Structure,点击进入。
- 在窗口左侧选择原始的项目后,点击右侧的Dependencies(依赖项)。可以看到项目当前引用的jar包等信息。
- 点击右侧的“+”添加按钮,在下拉菜单中找到Module Dependency(项目依赖),点击打开项目选择窗口。
- 选择前面步骤中导入的Library项目后,点击OK按钮导入到原始项目中。
- 原始项目的依赖项中就出现了导入的Libray项目,这时在项目中就能正确引用Library项目中的内容了,点击底部的OK按钮完成添加。
以上内容,只是第一步,接下来会有无数的bug在等着你
下面才是本篇文章的正题了,bug集锦!!
Bug No.1
Error: AndroidStudio TransformException : Error:Execution failed for task':app:transformClassesWithDexForDebug'
解决方案:
在你的主项目的build.gradle文件中,增加有注释的那一行
android { compileSdkVersion .. buildToolsVersion '...' defaultConfig { ... targetSdkVersion .. multiDexEnabled true // 简单地说,解除方法65535个限制 }}
Bug No.2
Error :unspecified on project app resolves to an APK archive which is not supported
解决方案:
在我们作为library的项目里,他的头部是apply plugin: ‘com.android.application’
这句话告诉了Gradle将我们要作为library的项目编译称为application,也就是apk,这就是问题的所在;
方法就是,将上面该句改为:apply plugin: ‘com.android.library’ 后,别急 还有问题,Gradle将其编译称为一个Library,也就是库,运行之后,会出现
Error :Libraryprojects cannot set applicationId. applicationId is set to ‘package_name’ indefault config.
那是因为一个库不允许设置applicationId,需要将builde.gradle — android — defaultConfig中的applicationId删除。
Bug No.3
Error:Error:Executionfailed for task ':greencar:processDebugManifest'.> Manifest merger failed withmultipleerrors, see logs。
原因:AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme),则此时会合并失败,并报上面的错误。
解决方案:
在manifest根标签上加入
xmlns:tools="http://schemas.android.com/tools"
,并在Manifest.xml的application标签下添加tools:replace="android:icon,android:name"
以及在主项目的 manifest文件中,重复写了 call_phone的权限,网上也有人是某个activity下多写了一句intent-filter,里面没有内容,将这些重复的空的删掉就好,并将作为lib的minisdk与主项目同步(修改library,build.gradle文件中最小sdk,或者降低主项目的sdk)
Bug No.4
error:在作为library的项目中报错:需要常量表达式
解决方案:
在一般的Android项目中,R类的常量都是用final定义的,但ADT 14之后,如果在library 项目中,它会没有final关键字,而我们在作为library的项目中使用了switch ,在switch语句的case中,如果使用 R.id.xxx 则会提示有问题,不允许非常量在case语句中。
Google提供的一个方法就是把它转化为if-else语句
以上是常遇到的bug总结 ,以此为警 ,望后人与己勿再踏此坑。
- Android studio import module问题集锦.
- Android Studio问题集锦
- Android Studio问题集锦
- Android studio 问题集锦
- Android Studio如何import module(针对非gradle)
- Android Studio如何import module(针对非gradle)
- Android Studio如何import module(针对非gradle)
- Android studio import module Cannot find declaration to go to
- Android Studio 遇到问题集锦
- android studio编译问题集锦
- python module import 问题
- Android Studio不能自动提示Import问题
- Android Studio中 Module依赖的问题
- android studio导入module后报错的问题
- Android studio Module相关问题:删除、添加;
- python中import module问题
- Android Studio导入项目出错问题集锦
- Android studio 使用 Genymotion问题集锦
- 关于客户端与服务端通信的一点感悟
- Xcode9.0.1
- 枚举:enum
- java并发编程:volatile关键字解析
- python匿名函数
- Android studio import module问题集锦.
- 数据结构中二叉树的相关操作
- iOS 保持界面流畅的技巧
- hibernate工具类
- 文章标题
- selenium(java)处理HTML5的视频播放
- nyoj 2359 : 巴什博弈?
- Java异常处理之InvocationTargetException(反射异常)
- [BZOJ]4373: 算术天才⑨与等差数列 线段树+hash