Articles of dex

在Dex阶段构建大型Codename One应用程序时出错

在dex阶段发送Android版本时,我在构建服务器中出错。 谷歌搜索了一下我了解到有64Kfunction的硬限制(包括所有的库,最重的是谷歌播放服务),或者你可以使用多重dex机制。 如何为Codename One激活此function? 我理解Codename One使用Ant,据我所知,这只适用于gradle。 仅供参考,这是解决方法,将谷歌播放服务拆分为具有原生android的子库: http://android-developers.blogspot.com.es/2014/12/google-play-services-and-dex-method.html

如何在android studio中启用dex编译器D8(下一代Dex编译器)

随着Android Studio 3.0 Beta版的发布 ,android studio提供下一代dex编译器,D8编译代码并构建android APK。 目前D8可供预览。 查看更多详情: https : //android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html 如何在android studio中使用D8启用构建?

Android支持multidex库实现

我已达到魔法dex限制,因为我的应用程序使用了大量的jar(驱动器api,greendao,文本到pdf,支持..)。 我目前的解决方案是,我真的创建了第二个apk,仅用于谷歌驱动器,我从主apk调用。 但现在我发现android最终支持这个库。 我的问题只是我不知道如何实现它(最好没有gradle)。 我找不到任何好的教程。 Okey我正在试图实现这个…我已经find了这个: http : //blog.osom.info/2014/10/multi-dex-to-rescue-from-infamous-65536.html 我补充说: android:name=”android.support.multidex.MultiDexApplication” 到我的清单文件和 protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } 到我的mainactivity.java 还为eclipse安装了gradle插件,导出gradle以获取build.gradle文件,我改为: apply plugin: ‘android’ dependencies { compile fileTree(dir: ‘libs’, include: ‘*.jar’) compile project(‘:android-support-v7-appcompat’) compile project(‘:Sync’) compile project(‘:gdrive:google-play-services_lib’) } android { compileSdkVersion 14 buildToolsVersion “21.1.1” sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src-gen’,’src’] resources.srcDirs […]

Android Studio:错误:任务’:app:dexDebug’的执行失败

我第一次使用Android Studio,导入项目后出现以下错误(以前是一个eclipse项目,我也有问题。) 以下是给出的信息: Error:Execution failed for task ‘:app:dexDebug’. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: /home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/build-tools/21.1.2/dx –dex –no-optimize –output /home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/dex/debug –input-list=/home/crash-id/AndroidstudioProjects/LocalSin/app/build/intermediates/tmp/dex/debug/inputList.txt Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) at com.android.dx.command.dexer.Main.run(Main.java:246) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106) :app:dexDebug UNEXPECTED […]

动态加载aar库

我正在尝试构建一个库,并使用gradle在Android Studio中的另一个应用程序中动态加载它。 我理解如何创建jar并将它们转换为dex文件以进行加载。 但是当我在Android Studio中使用Gradle构建一个库时 – 我没有得到一个jar – 我得到一个aar文件 – 我似乎无法转向或加载为dex。 如何将aar变为dex文件?

IntelliJ – 64K方法dex问题的动态类加载

我正在开发一个快速接近dex文件的64K方法限制的项目。 这篇Android开发人员博客文章 (自2011年7月起)解释了如何使用由Ant驱动的命令行构建来动态加载类,但是没有探讨如何在IDE中使用它(除了说它在Eclipse中不起作用) )。 我环顾四周,找不到任何关于让这个系统在IntelliJ中工作的东西。 IntelliJ是否支持使用多个dex文件构建应用程序? 如果是这样,如何设置它?

获取Android库中源代码的校验和

我正在开发一个Android库,我想在我的代码中应用篡改检测机制,因为它调用了一些敏感的金融Web服务。 我要实现的是在运行时以编程方式计算apk(或其重要部分)的校验和,这样我就可以防止重新打包或重新编译的apk能够造成任何伤害(防篡改)。 到目前为止我想出的是计算applicationInfo.publicSourceDir的校验和。 但我不确定具有多个dex文件或多个splitApks的应用程序会发生什么。 以编程方式基于Android应用程序的代码库计算校验和的最可靠方法是什么?

在Android 5.0上动态加载DEX文件

在Android 5.0之前,我能够使用DexClassLoader动态加载DEX文件并调用loadClass()方法,但是使用最新的Android版本,我得到了ClassNotFoundException 。 这是我在做的事情: 生成DEX文件。 ../android-sdk/android-sdk-linux_86/build-tools/21.1.1/dx –dex –output=bin/output.dex bin/output.jar 创建一个DexClassLoader。 DexClassLoader cl = new DexClassLoader( dexFile.getAbsolutePath(), odexFile.getAbsolutePath(), null, mContext.getClassLoader()); 调用cl.loadClass(“myMethod”); 我知道ART使用dex2oat生成一个由ART加载的ELF文件,但是在第2步中我生成了一个ODEX文件,因此我不需要在ART中运行以在运行时加载DEX文件,任何人都可以帮助我 ?

如何在使用Google Play服务时避免65k方法限制

如果你发现自己编写了一个依赖于许多不同库的大型Android应用程序(我建议不要重新发明轮子),很可能你已经遇到了Dalvik可执行文件classes.dex的65k方法限制 。 此外,如果您依赖于Google Play Services SDK这样的大型库本身已经在5.0版中包含了超过20k的方法,那么您将不得不使用诸如剥离包或multidex支持之 类的技巧来避免打包时出错。 由于Android Lollipop多个dex文件更易于处理,因此Android的新运行时ART已公开发布,但目前开发人员仍被迫进行方法计数。 在使用Google Play服务时,减少应用程序方法数量的最简单方法是什么?

com.android.dx.util.DexException:多个dex文件定义

我使用ant发布并得到了这个错误: [dx] UNEXPECTED TOP-LEVEL EXCEPTION: [dx] com.android.dx.util.DexException: Multiple dex files define Lcom/android/vending/billing/IMarketBillingService; [dx] at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:580) [dx] at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:538) [dx] at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:519) [dx] at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168) [dx] at com.android.dx.merge.DexMerger.merge(DexMerger.java:186) [dx] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300) [dx] at com.android.dx.command.dexer.Main.run(Main.java:232) [dx] at com.android.dx.command.dexer.Main.main(Main.java:174) [dx] at com.android.dx.command.Main.main(Main.java:91) 我有同样的错误 ,但答案对我没有帮助 我试过了: 将android sdk重新安装到其他目​​录 删除bin / gen dirs并清理项目 在eclipse中删除并添加libs 将android API从17更改为10 确保我的bin文件夹不包含在我的构建路径中 我有1个主项目和2个lib项目(Facebook和扩展文件下载器) 谢谢你的回答!