当前位置: 首页 > 知识库问答 >
问题:

Android K上的BuildConfig NoClassDefFoundError

杜海
2023-03-14

我最近将我的构建环境升级到了Android studio 2.2,JDK 1.8(和jack一起),我正在使用gradle-2.14.1的gradle wrapper。我的构建/发布版本可以在任何android版本上正确编译和运行

致命异常:主进程:com.trail.android.debug,PID:21045 java.lang.NoClassDefFoundError:com.trail.android.TrailApplication.attachBaseContext(TrailApplication.java:41)位于android.app.Instruction.newApplication(Instrumentation.java:991)位于andrid.app.LoadedApk.makeApplication(LoadedApk.java:511)在android.app.ActivityThread.handleBindApplication(ActivityThreads.java:4317)在andrio.app.Activit.Thread.access$1500(ActivityTthread.java:135)在android.app.ActivityThread$H.handleMessage(ActivityTThread.java:1256)在androl.os.Handler.dispatchMessage(Handler.java:102位于java.lang.reflect.Method.invokeNative(本机方法),位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygetInit.java:779),位于java.lang_reflect.Mmethod.invoke(Method.java:515),位于com.ibm.android.interal.os.ZygoteInit.main(ZygoteInit.java:595),位于dalvik.system.NativeStart.main(本机方式)

共有1个答案

弓宏茂
2023-03-14

这与 https://code.google.com/p/android/issues/detail?id=224026 有关

有些类进入了辅助索引文件(在我的案例中,BuildConfig.class位于辅助索引中),而KitKat无法在辅助索引中找到(这在AndroidL及以上版本上自动运行,在pre-L版本上,multidex支持库应该会处理这个问题,但我想我遇到了bug)。要解决此问题,请在jackOptions中添加以下内容。

 jackOptions {
            enabled true
            additionalParameters("jack.dex.output.policy" : "multidex")
            additionalParameters("jack.preprocessor" : "true")
            additionalParameters("jack.preprocessor.file" : "legacyMultidexInstallation.jpp")
            additionalParameters("jack.dex.output.multidex.legacy": "true")
        }

有了这个修复程序,它对我有用。

 类似资料:
  • Animal.java 我为它创建了以下自定义断言: AnimalAssert.java 编辑:基于第一个答案(cglib需要一个),我用一个no arg构造函数更新了动物类,但是抛出了相同的异常

  • 我的应用程序一直在许多Android平台上报告这个问题(4.1、4.0.4、2.3.6.…)。但我无法在我的手机上复制这个问题。我已经在Google上搜索了这个问题,但堆栈跟踪似乎与我的不一样。

  • 我有一台带有Intel CPU的Windows机器(在引导菜单上启用VMX)。我使用VirtualBox在上面运行Ubuntu Guest。我在上面运行qemu,以运行另一个Guest OS,使用kvm(选项)。 我在尝试插入kvm-intel模块时收到以下错误: 我已经检查了来宾操作系统中的vpx标志,但我也没有看到 有没有办法在来宾Ubuntu操作系统中启用kvm支持,以便我可以在Ubuntu

  • 我试图从java程序中使用Spark SQL,其中pom.xml中的依赖关系指向Spark版本1.6.0。下面是程序 但是,我在线程“main”java.lang.nosuchmethoderror:org.apache.spark.sql.sqlcontext.sql(ljava/lang/string;)lorg/apache/spark/sql/dataframe中出现异常;我正在创建一个平

  • 主机系统为ARCHLinux。我想开发需要运行Windows docker容器的.NET4.6.1应用程序。所以我在VirtualBox下运行Win10。然后我在Win10中安装Docker,以运行Windows Docker容器。Linux->VirtualBox->Win10->Docker->Windows Docker容器->要运行的应用程序。 或者更具体地说,VirtualBox是否支持

  • 问题内容: 我正在尝试根据此教程在我的应用程序中实现NotificationListenerService:http : //www.kpbird.com/2013/07/android- notificationlistenerservice.html ,但是调用getActiveNotifications时出现NullPointerException。 我正在向该服务发送广播,该广播应生成所有

  • 问题内容: 因此,我正在构建一个minecraft插件,该插件的一部分从mysql抓取一堆数据块,并在服务器启动时将其加载到缓存中。我有一些代码可以在Eclipse测试用例中正常运行。但是,当我在本地Minecraft服务器中加载插件时,出现了异常。 抛出异常的代码。 是从执行查询返回的实例。 只是返回一个 片段稍大…并不是真的可以显示其他内容。 我看过网上有人说要修复,我需要包括ojdbc6.j

  • 问题内容: 我尝试开发一种访问智能卡的javafx应用程序。 我有一个简单的概念证明,像这样: exepcion是: 问题答案: 只需在64位JDK的旁边(或相反)安装32位JDK,并确保使用32位版本编译并签名JAR / COD文件。 实际上,这是 64位 版本中的 错误 。http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=f1279f