Articles of dex

我如何制作孤立的dalvik

我正在追踪Dalvik机器的源代码。 据此,我想让Dalvik可以运行。 我似乎是dvk项目。 但是有很多问题导致了错误。 有没有办法让dalvik只有没有所有的android。 因为make android需要花费太多时间(大约需要几个小时) dvk项目: http : //code.google.com/p/dvk/

Gradle构建失败:Dex文件不能超过64k

每当我按项目构建并准备在我的设备上启动时,我都会收到此错误: 错误:.dex文件中的方法引用数不能超过64K。 要了解如何解决此问题, 请访问https://developer.android.com/tools/building/multidex.html 另外,我收到此错误: 错误:任务’:app:transformClassesWithDexForDebug’的执行失败。 com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:org.gradle.process。 internal.ExecException:进程’命令’C:\ Program Files \ Java \ jdk1.8.0_91 \ bin \ java.exe”以非零退出值2结束 它说gradle构建失败了两个错误 所以我有一些问题: 什么是dex文件 我没有直接使用它们,为什么我会得到上面的错误? 什么是dex文件? 这些文件对.APK文件的大小有什么要说? 在我停止使用proguard进行调试构建之后,这些错误再次出现,因为StackTrace没有显示,而且在我激活proguard之前我有错误。 我曾经有过这个错误,我删除了dex文件夹,它解决了它,但现在突然又不够了。 我的gradle文件: apply plugin: ‘com.android.application’ android { compileSdkVersion 23 buildToolsVersion “23.0.3” defaultConfig { applicationId “com.example.myproject” minSdkVersion 15 targetSdkVersion 23 } buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile(‘proguard-android.txt’), […]

转换为Dalvik格式失败:无法执行dex:超出GC开销限制

我在最近3个小时内遇到了这个错误。当我从SVN检出最新代码之后,它突然停止工作了。 注意: 我的新项目大小约为135 MB,我正在使用eclipse kepler。 myApp / res / libs中还有3个jars,名为sqlite.jar,ksoap2.jar,rt.jar 所以我用Google搜索并find了这个答案 。 还有Blog 1和Blog 2我编辑了eclipse.ini 从: -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar –launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140116-2212 -product org.eclipse.epp.package.standard.product –launcher.defaultAction openFile –launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform –launcher.XXMaxPermSize 256m –launcher.defaultAction openFile –launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -Xms40m -Xmx512m 至 -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar –launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140116-2212 -product org.eclipse.epp.package.standard.product –launcher.defaultAction openFile –launcher.XXMaxPermSize 1024M -showsplash org.eclipse.platform –launcher.XXMaxPermSize 1024m –launcher.defaultAction openFile –launcher.appendVmargs […]

无法实例化活动…未在路径上find类WelcomeActivity:DexPathList(即时运行)

我一直在努力工作几天,突然从一个构建/部署到另一个我开始得到以下exception。 没有更新或更改,我只是想在它发生时在不同的设备上运行应用程序(就像其他任何一天真的一样)。 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.my.app.flavor.debug/com.my.app.ui.activity.WelcomeActivity}: java.lang.ClassNotFoundException: Didn’t find class “com.my.app.flavor.ui.activity.WelcomeActivity” on path: DexPathList[[zip file “/data/app/com.my.app.flavor.debug-2/base.apk”],nativeLibraryDirectories=[/data/app/**com.my.app.flavor.**debug-2/lib/x86, /data/app/com.my.app.flavor.debug-2/base.apk!/lib/x86, /vendor/lib, /system/lib]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.ClassNotFoundException: Didn’t find class “com.my.app.ui.activity.WelcomeActivity” on path: DexPathList[[zip file “/data/app/com.my.app.flavor.debug-2/base.apk”],nativeLibraryDirectories=[/data/app/com.my.app.flavor.debug-2/lib/x86, /data/app/com.my.app.flavor.debug-2/base.apk!/lib/x86, […]

打包交换机和稀疏交换机dalvik操作码之间的区别

我想知道dalvik中打包交换机和稀疏交换机操作码之间的区别。 如果你能提供例子,请。 谷歌提供的解释对我来说不清楚。 打包开关 稀疏开关 谢谢。

如何限制DEX内存使用

我试图设置DEX任务可以在基于gradle的Android项目中使用的最大内存,但找不到任何选项来执行此操作。 我这样做的动机是因为dex有时会占用大量内存以至于我的计算机开始交换并在几分钟内完全没有响应(因此我宁愿看到任务失败然后释放更多资源并重试) 在我的gradle.properties我有org.gradle.jvmargs=”-Xmx300m” ,它限制了Gradle本身使用的内存,但是当Gradle启动dx时,它总是使用-Xmx1024 。 那么如何让Gradle限制dx使用的内存?

由于eclipse中的Java堆空间与一个小的Android应用程序无法执行dex

我有一个Android应用程序,只有一个jar导入,大小为4 MB(Symja https://code.google.com/p/symja/ )字面上,项目中唯一的代码是创建一个新的textview并将其设置为内容视图。 但是我得到了错误: Conversion to Dalvik format failed: Unable to execute dex: Java heap space Unable to execute dex: Java heap space 我有另一个Android项目,它更大,近20,000行代码,它在几秒钟内运行。 我的eclipse.ini有以下设置: -Dosgi.requiredJavaVersion=1.5 -XX:MaxPermSize=512m -Xms512m -Xmx1024m 我不知道为什么我不能运行这个项目。 所以任何建议都非常感谢! 谢谢。

为什么我要将gradle依赖包含为`@ aar`

为什么(或不应该)我将gradle依赖包含为@aar , 有什么好处/缺点? 如您所见,我将@aar添加到支持它的下面的库中。 但是在做这件事之前一切似乎都有效…… dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:22.1.1’ compile ‘com.google.android.gms:play-services-maps:7.3.+’ compile ‘com.google.guava:guava:18.0’ compile ‘com.octo.android.robospice:robospice-spring-android:1.4.14’ compile ‘org.codehaus.jackson:jackson-mapper-asl:1.9.13’ compile ‘com.mcxiaoke.volley:library-aar:1.0.0@aar’ compile ‘de.psdev.licensesdialog:licensesdialog:1.7.0@aar’ }

Proguard flag dontobfuscate导致翻译被中断exception

我遇到过以下exception。 当我在Proguard配置中省略-dontobfuscate标志时一切都很好。 任何想法如何启用此标志和完整构建? 日志: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:myTask:transformClassesWithDexForMyFlavor’. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:61) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:45) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:233) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:74) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:55) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113) at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23) at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43) at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) at […]

-main-dex-list中的类太多了

我在构建应用程序时遇到此exception。 UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Too many classes in –main-dex-list, main dex capacity exceeded at com.android.dx.command.dexer.Main.processAllFiles(Main.java:494) at com.android.dx.command.dexer.Main.runMultiDex(Main.java:332) at com.android.dx.command.dexer.Main.run(Main.java:243) at com.android.dx.command.dexer.Main.main(Main.java:214) at com.android.dx.command.Main.main(Main.java:106) 我搜遍了所有并得到了解决方法: http://blog.osom.info/2014/12/too-many-methods-in-main-dex.html 但是这个问题的正确解决方案是什么?