标签:exception guard led dex activity 联系 升级 eclips ane
原文:https://www.jianshu.com/p/ccf306e08d5b?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
AAR 是 Google 专门为 Android Studio 推出的一种库文件格式,用于便捷的分享和使用
Android Library 项目
而被 Google 放弃的 Eclipse ADT 没办法像使用 jar 那样使用 AAR,但是我们可以使用 AAR 里的文件快速创建一个 Eclipse Library 项目来使用
libs
文件夹,然后将 classes.jar
文件和 jni
文件夹下的所有文件移到 libs
文件夹下proguard.txt
文件的内容拷贝到你的项目的 proguard-project.txt
文件中project.properties
文件,内容如下:
target=android-22
android.library=true
target
的值随 AAR 里 Android Manifest.xml 文件的 targetSdkVersion
属性值而定aapt
和 jni
文件夹以及 R.txt
和 proguard.txt
文件至此一个 Eclipse Library 项目已经构建完成了,接下来只需打开 Eclipse 导入项目并在你的项目中配置引用这个项目即可
java.lang.NoClassDefFoundError: *.Activity
异常,通常是因为这个 AAR 里的 Activity 继承或实现了其它 AAR 中的类或接口,但是你没有导入 AAR 需要的依赖,导致运行时 AAR 里的 Activity 无法实例化,解决办法就是导入全部需要的依赖,具体需要什么依赖你就自己找到AAR的pom文件查看或者反编译相应出错的类查看Android 官方提供的 ADT 插件在引用 library 项目时看似很美好,但有很多坑
ADT插件并不会自动将 library 里的 asset 资源合并到你的项目中,因此你需要手动拷贝
如果你引用的 library 中包含有四大组件,在不做任何额外配置的情况下你永远也启动不了 library 中包含的四大组件(例如启动activit时抛ActivityNotFoundException),因为需要你在你的项目的project.properties文件中配置一下ADT才会合并 library 中的 AndroidManifest文件,如下:
manifestmerger.enabled=true
此属性需要 ADT 17 以上版本
解决这个问题只需升级 ADT 到 17 以上版本即可
虽说现在大部分都是用 Android Studio 开发 Android 了,但还是有部分人使用 Eclipse
的,比如大部分的游戏开发人员在集成一些第三方 SDK 的时候主要还是用的 Eclipse,所以这些问题还是有记录价值的
【转】【Android】1分钟不用改任何代码在Eclipse中使用AAR
标签:exception guard led dex activity 联系 升级 eclips ane
原文地址:https://www.cnblogs.com/tc310/p/9154930.html