Articles of dex

安装应用程序时出错(INSTALL_FAILED_DEXOPT)

我正在使用Android中的ccr4j API,所以当我运行我的项目时会抛出一个错误,如: 安装应用程序时出错(INSTALL_FAILED_DEXOPT) 我发现从网和同一个网站也做了所有尝试, 1.从设备上卸载相同的应用程序。 2.使用擦除用户数据运行仿真器。 但仍然会出现同样的错误。 所以任何人都知道为什么会抛出这种错误?

.dex文件中的方法引用数超过64K

在我的项目中包含播放服务和firebase库后,我正在处理我的android应用程序,我收到此错误,无法运行我的代码 :app:prePackageMarkerForDebug:app:transformClassesWithDexForDebug要在进程中运行dex,Gradle守护程序需要更大的堆。 它目前有大约910 MB。 要加快构建速度,请将Gradle守护程序的最大堆大小增加到2048 MB以上。 为此,请在项目gradle.properties中设置org.gradle.jvmargs = -Xmx2048M。 有关详细信息,请参阅https://docs.gradle.org/current/userguide/build_environment.html错误:.dex文件中的方法引用数不能超过64K。 了解如何在https://developer.android.com/tools/building/multidex.html解决此问题:app:transformClassesWithDexForDebug FAILED错误:任务’: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:进程’命令’/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin/java”以非零退出值2结束 我的build.gradle文件在这里: apply plugin: ‘com.android.application’ android { compileSdkVersion 23 buildToolsVersion “23.0.2” defaultConfig { applicationId “xyz.in.network” minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName “1.0” } buildTypes { release { shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’ multiDexEnabled true } } } dependencies { […]

Android:v7的编译错误支持lib 27.1.0“程序types已存在”android.support.v7.recyclerview.extensions.ListAdapter

我认为必须存在27.1.0 v7支持lib的错误, 刚刚发布 。 更新我的项目以使用它(从26.1.0)后,我不断收到此编译错误: 任务:app:transformDexArchiveWithDexMergerForRegularDebug FAILED D8用于合并dex。 程序types已存在:android.support.v7.recyclerview.extensions.ListAdapter FAILURE:构建因exception而失败。 出了什么问题:任务执行失败’:app:transformDexArchiveWithDexMergerForRegularDebug’。 com.android.build.api.transform.TransformException:com.android.tools.r8.errors.CompilationError:程序types已存在:android.support.v7.recyclerview.extensions.ListAdapter 尝试:使用–info或–debug选项运行以获取更多日志输出。 例外是:org.gradle.api.tasks.TaskExecutionException:任务’:app:transformDexArchiveWithDexMergerForRegularDebug’的执行失败。 在org.gradle上的org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)位于org.gradle.api.internal的org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)上的.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) org.gradle.api.internal.tasks.execution上的.gasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) org.gradle.api.internal.tasks.execu上的org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)中的.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) 在org.gradle.api.internal.tasks.exe执行(SkipTaskWithNoActionsExecuter.java:52)org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter中的.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)。执行(SkipOnlyIfTaskExecuter.java:54)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 $ 1.run(DefaultTaskGraphExecuter.java:248)org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)at org。 gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)org.gradle.internal.progress.DefaultBuild 在Org.gradle.internal.progress.DefaultBupeOperationExecutor.run(DefaultBuildOperationExecutor.java:110)上的OperationExecutor.execute(DefaultBuildOperationExecutor.java:199)org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)at org.gradle.execution.taskgraph .DefaultTaskPlanExecutor $ TaskExecutorWorker.access $ 200(DefaultTaskPlanExecutor.java:79)org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute(DefaultTaskPlanExecutor.java:104)at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1。执行(DefaultTaskPlanExecutor.java:98)org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.jav) […]

cmd无法识别dex2jar- Android Apk

我想从apk获取源代码并使用此解决方案有没有办法从APK文件中获取源代码? 我尝试将dex文件转换为jar并使用dex2jar; 但是cmd无法识别此命令。 dex2jar classes.dex “dex2jar未被识别为内部或外部命令” 是dex2jar已被弃用? 我可以用什么来将dex转换为jar?

使用不带Gradle的multiDexEnabled而是使用Eclipse构建过程

从最新的SDK版本开始,使用多个dex文件创建应用程序要简单得多( https://developer.android.com/tools/building/multidex.html ),我的问题是,当我使用这个新function时也可以使用我不是在构建过程中使用Gradle而是使用“旧的”Eclipse构建链吗? Gradle构建文件中的“multiDexEnabled true”也必须以其他方式传递给Android编译器吗?

什么是Gradle中的dex

Gradle或Android中的dex是什么? 在Gradle中, dexoptions的含义是dexoptions ? 有时我的项目因为一些dexerrors而无法编译。 我需要激活ProGuard来编译我的Android应用程序。

如何调试android应用程序的smali代码?

我有一个有效的Android应用程序。 其中我没有源代码。 我想调试这个应用程序的function。 我可以使用apktool成功逆向工程这个应用程序apk文件 – https://code.google.com/p/android-apktool/这个工具生成smali格式的类文件。 我的要求是: 能够通过添加调试日志来调试方法。 能够通过打印堆栈跟踪来调试方法调用。 为此,我需要注入/插入smali等效的调试日志或堆栈跟踪。 我尝试在其中一个方法的开头添加一些smali指令,但它与ClassVerifyError崩溃。 示例smali代码 – .method public declared-synchronized b()V .locals 2 .prologue .line 87 monitor-enter p0 :try_start_0 iget-object v0, p0, Lcom/example/viewerlib/t/d;->a:Ljava/lang/Thread; invoke-virtual {v0}, Ljava/lang/Thread;->isAlive()Z : : 有人可以帮助我添加smali调试日志。 Thnx提前。

Javareflection处理库的更改

好的,我有一个Android应用程序,我开始为应用程序创建一个插件系统,以便开发人员可以编写应用程序可以用来生成不同内容的内容提供程序,我不会完成整个过程,但一切正常,如下所示: 1)我创建了一个名为com.myaddonlib的库,我在我的项目中导入了这个库中有一个接口和不同的对象。 2)现在开发人员可以在他的最后创建一个简单的Java项目,导入库com.myaddonlib ,并在他的主类上实现接口,该接口具有从库中返回不同对象的方法。 3)回到Android应用程序,我可以加载开发人员创建的.jar文件(在将classes.dex添加到jar文件之后)和android DexClassLoader我可以加载实现的界面,如下所示: DexClassLoader classloader = new DexClassLoader(jarFilePath, tempDirectory, null, context.getClass().getClassLoader()); Class classToLoad = classloader.loadClass(“com.apackage.Addon”); 其中Addon是由addon开发人员创建的类,它从驻留在名为com.apackage的包中的库实现接口。 然后,我可以将com.myaddonlib库中的接口com.myaddonlib为com.myaddonlib的新实例,并调用addon开发人员实现的函数。 现在问题就是我决定更新插件库并从类中删除其中一个variables,这意味着插件的类现在与更新库中的类(在应用程序中使用)不同。 即使未使用更改的variables,也会导致应用程序崩溃而不会出现任何错误。 事实上两个类都不同(即使唯一的区别只是一个缺失的variables)会导致某些故障。 现在这不是一个简单的解释程序所以我会理解,鉴于我的英语不好,有些人会遇到麻烦。 我的问题是我需要知道如何避免由于两端之一上的库更改而导致的崩溃。 以及java如何在这种情况下处理对象更改

多个R.java中的冗余资源referance导致DexIndexOverflowException

我有多个库项目,他们都依赖于支持库。 我的应用程序依赖于这些多个库项目。 每个库项目都包含对其R.java文件中的库资源的引用。 由于冗余,这会使字段ID计数膨胀。 我的应用得到了 DexIndexOverflowException:字段ID不在[0,0xffff]中:65536 因为这个冗余的R.java引用。 因此,我的应用程序有47k方法,而65k字段ID。 编辑: 我不会使用multi-dex,它不是我的问题的解决方案。 我想削减冗余字段ID。 问题不在于如何解决问题,问题是如何摆脱冗余字段ID。 使用multi-dex不会删除冗余字段ID。

com.android.builder.dexing.DexArchiveMergerException:无法合并dex – Android Studio 3.0稳定

我做了: 在“设置” – >“Android SDK” – >“SDK工具”中,检查并安装了Google Play服务v.46 删除了文件夹/.gradle “清洁工程” “重建项目 错误是: Error:Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’. > java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 项目build.gradle buildscript { repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.0’ classpath ‘com.google.gms:google-services:3.1.0’ } } allprojects { repositories { jcenter() google() } } task clean(type: Delete) { delete rootProject.buildDir } […]