Articles of dex

Android中的AAR,JAR,DEX,APK之间的差异

在Android系统或开发环境中,AAR,JAR,DEX和APK文件之间有什么区别? 每个人的目的是什么? AFAIK,JAR就像.class文件的集合(就像在Java中一样)。 AAR是JAR文件+资源。 但它的用法是什么? 用于分发Android的开发库? APK似乎类似于.deb或.rpm这样的包。 这是在Android上安装应用程序的唯一方法吗? DEX文件怎么样? 编译应用程序……但是与JAR或AAR文件有什么区别? Moreveor,在为Android分发.so(即本机代码)文件时,最好的方法是什么?

DexIndexOverflowException:无法将新索引65772合并为非巨型指令!:Jumbo Mode? 和/或Multi-Dex? 幕后的是什么?

我试图在gradle中为我的项目设置jumboMode,它似乎能够解决以下DexIndexOverflowException: com.android.dex.DexException:无法将新索引65536合并为非巨型指令! DexIndexOverflowException:无法将新索引65772合并为非巨型指令! 1)什么是jumboMode选项实际上在幕后做了什么? android { … dexOptions { jumboMode true } } 2)我也注意到启用multi-dex也可以解决同样的问题,这两种方法之间的正确选择是什么? android { … defaultConfig { … multiDexEnabled true } }

Eclipse中的“Android Private Libraries”文件夹是什么?

我最初认为它专门用于官方图书馆,如支持库。 但是,每当我使用“添加到构建路径”菜单项添加自定义JAR时,它都会自动显示在“引用的库”和“Android私有库”中。 其中之一是多余的,因为在构建时导出两者都没有意义。 此外,“Android私有库”无法修改,因此我无法(轻松)添加java文档或源路径。 更不用说自定义JAR在“Android私有库”中似乎是错误的。 我无法删除“Android私有库”中的条目,也只能使用“引用的库”。

从命令行编译Android项目很慢

我正在使用以下命令在OSX上从命令行编译我的(相当简单,只有5个文件和几百个LOC)应用程序: ant debug 有用。 但它运作缓慢: BUILD SUCCESSFUL Total time: 26 seconds 这是为什么? 即使我只在一个java文件中更改一行,也需要很长时间。 大部分时间都花在dex阶段(大约20秒),这是AFAIK创建Dalvik字节码。 但我的朋友也使用Eclipse在Windows上使用相同的项目,他说编译只需要一两秒钟就可以在他的机器上运行。 有什么办法可以加快这个过程吗?

将Google Guava添加到Android项目 – 显着减慢了构建速度

将Google Guava r09添加到我们的Android项目后,构建时间显着增加,尤其是DEX生成阶段。 我知道DEX生成需要我们所有的类+我们依赖的所有jar并将它们转换为DEX格式。 番石榴是一个相当大的jar子,约1.1MB 这可能是构建放缓的原因吗? 有什么办法可以加快速度吗? PS通常我是从Intellij构建的,但我也尝试使用Maven构建 – 结果相同。 谢谢 亚历克斯

如何将.jar或.class转换为.dex文件?

我要编辑Opera Mini v6.5服务器,因为它在我们国家被阻止了。 现在我解压缩.apk文件提取的classes.Dex然后通过dex2jar.bat转换它,现在修改了服务器。 我的问题是我想将.jar或.class重新打包到classes.Dex。 我该怎么做?

Android Jack mockito另类

也许还为时过早,但正如杰克和吉尔今天宣布的那样,我对此感到非常兴奋。 我真的很想去,但他们也说: 读取.class文件的各种工具(例如JaCoCo,Mockito和一些lint检查)目前与Jack编译器不兼容。 杰克编译器已有一个模拟替代品吗?

多个dex文件 – 转换为Dalvik格式失败 – 无法执行dex

我有2个应用程序版本 – 专业版和精简版。 它们都已在v1.01上市。 我试图为两者发布v1.1。 此更新包括SwawrmConnect集成,以便使用其全局排行榜。 我应该先说我知道我没有正确维护我的代码。 我有2个完全独立的应用程序,可能共享90%的代码。 我单独维护它们是因为在一两周或者两年或三年之后未能弄清楚如何建立一个库并共享代码之后,我放弃了,就这样用它。 SwarmConnect是我使用的第一个jar,必须为两个应用程序创建一个库(请参阅下面的文件结构截图)。 现在我的Lite版本正在运行并准备发布。 我现在正试图将我的专业版本发布到需要发布的位置。 我相当确定所有java / xml文件都是最新的并且准备就绪。 当我在模拟器中运行专业版时,我收到以下错误: [2013-04-18 11:24:41 – Dex Loader] Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler; [2013-04-18 11:24:41 – BibleTriviaPro] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler; 我尝试过的事情: 清洁/重建 更新Eclipse 删除bin和gen文件夹 重启Eclipse 还有一些其他的东西 我的文件结构: […]

旧的API超过了棒棒糖的64k限制,但不是更新

所以我想知道为什么我在尝试在早于棒棒糖的Android版本上运行我的应用程序时会遇到64k dex方法限制,当它在更新的版本上运行得很好。 可能是,因为在旧版本上运行时实际上正在引用支持库吗? 这是我的傻瓜: apply plugin: ‘com.android.application’ android { compileSdkVersion 23 buildToolsVersion ‘23.0.2’ lintOptions { checkReleaseBuilds true // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } defaultConfig { applicationId “com.domain.myapp” minSdkVersion 16 targetSdkVersion 23 versionCode 27 […]

MultiDexApplication的使用导致Application类的Robolectric测试中断

使用gradle def( https://plus.google.com/+IanLake/posts/JW9x4pcB1rj )使用支持v4-r21添加Multi dex支持 apply plugin: ‘com.android.application’ android { compileSdkVersion 19 buildToolsVersion “20.0.0” defaultConfig { applicationId “info.osom.multidex” minSdkVersion 19 targetSdkVersion 19 versionCode 1 versionName “1.0” } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } dexOptions { preDexLibraries = false } afterEvaluate { tasks.matching { it.name.startsWith(‘dex’) }.each { dx -> if (dx.additionalParameters […]