- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题,我很确定它与 multidex
有关。基本上,我使用的一个库在 jar 中有一个 .properties
资源包。随着我的应用程序开始增长,我开始遇到问题。我过去发表过几篇关于它的文章,但从来没有任何解决方案( post 1 , post 2 )。帖子 2 实际上有更多关于这个问题的细节。
除非我强制该 Jar 上的某些代码在 Application
onCreate
方法上运行,否则基本上缺少此资源。至少那是直到昨天的问题。
昨天我更新了一个与此无关但现在比以前更大的 jar(我假设这意味着它有更多的方法),现在代码在同一个问题上再次失败 java.util.MissingResourceException:找不到基本名称 javax.servlet.LocalStrings 的包,语言环境 en_US
但现在它对每个人都失败了,而不仅仅是某些用户。
我使用 apktool 将 apk 分开,一个有效,一个无效(基本上降级那些不相关的 jar),两个 apk 中都有一个 unknown
文件夹,但有效的有那些LocalStrings.properties
在该文件夹中,而不起作用的文件夹中没有它们。我解压缩了那些不相关的 jar 以确保它们没有 javax.servlet
包,它们是 jar,所以它们没有任何其他可能影响 gradle 构建的东西。
基本上我现在的理论是那些 jar 刚好足够大,可以将 javax.servlet
内容从第一个 dex 文件中推出,但这并不完全正确,因为 properties
文件甚至不在 dex 文件中。如果我只是解压缩 apk,我可以在根文件夹中看到 javax
包,在正确的位置看到资源文件,但看不到 LocalStrings.properties
而如果我这样做是为了一个可用的 apk,我可以在其中看到 LocalStrings.properties
。
现在我一直在测试 multiDexKeepProguard
并且我将所有 javax.servlet
放入主 dex 文件,但我仍然无法获取 LocalStrings .properties
出现在 apk 中,即使有:
-keepclassmembers 类 **$Properties
我还尝试了一些其他疯狂的事情,比如使用 javax.servlet
包将 LocalStrings.properties
文件放入我的主应用程序包中,但它没有帮助。
那么我还能尝试什么?这是一个错误还是我做错了什么?
谢谢。
编辑:我想报告我通过删除不再使用的依赖项(广告网络)再次解决了这个问题。当我使用 dex2smali 查看第一个 dex 文件并看到它在那里时,我意识到我仍然有这种依赖性。因此,它放在第一个 dex 文件中的 jar 的大小肯定是一个问题。
编辑:我的混淆器设置中有这个:
-keep class javax.** {*;}
-keep interface javax.** {*;}
-keepclassmembers class javax.** {*;}
-keepclassmembers class **$Properties
最佳答案
不确定这是否是正确的方法,但显然 proguard 错误地为我删除了 *.properties 文件。
什么修复了它正在构建
minifyEnabled false
然后回到
minifyEnabled true
之后,*.properties 文件再次在最终构建中可用。
关于android - 我如何告诉 multidex 保留 jar 属性文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765228/
我想在我的应用程序中使用 multidex,起初我使用 depedencies :'com.google.android:multidex:0.1',但是编译后出现这个错误: Error:Execut
我的应用程序在 pre-21 上崩溃并出现 java.lang.NoClassDefFoundError app.module.SomeClass 错误。 我已经启用了 Multidex: build
按照以下位置提到的说明进行操作:https://developer.android.com/studio/build/multidex.html#mdex-gradle 我遇到错误找不到符号 clas
我收到以下错误。 致命异常:main 2.1.0 版的 VM 支持 multidex 安装 VM 支持 multidex,MultiDex 支持库被禁用。 安装 VM 支持 multidex,Mult
我已经尝试了互联网上的所有解决方案,但其中任何一个都有效,这是我的 gradle: android { compileSdkVersion 25 buildToolsVersion '
> Could not resolve all files for configuration ':app:debugCompileClasspath'. > Could not find co
为了启用多索引,我在 CustomApplication 类中有以下代码: @Override public void onCreate() { MultiDex.install(this);
找不到 multidex.jar (com.android.support:multidex:1.0.2)。在以下位置搜索: https://jcenter.bintray.com/com/andro
这是我的build.gradle,当我运行应用程序时,它报告这个错误消息: 错误:任务 ':app:transformClassesWithJarMergingForDebug' 执行失败。 com.
我正在尝试启用 MultiDex。我添加了 multiDexEnabled true和 compile 'com.android.support:multidex:1.0.3'构建.gradle。我做
我曾经在几天前收到 DexIndexOverflowException,我所做的是: a) 在我的 build.gradle 文件中将 multiDexEnabled true 添加到 default
我有以下争吵: 因此,对于一个较大的项目,我需要有多个应用程序,其中包含一个可重用的库模块,用于多种用途。不幸的是,我的库模块中的类和库的基本数量似乎超出了项目的 dex 限制具有以下 gradle
我下载了 SugarORM 源代码以将其用作库模块(因此我可以覆盖应用程序的“attachBaseContext”方法。 我已经看到问题SugarORM and multidex ,问题是我不知道
我在启用 multidex 时遇到问题。我正在使用 Android Studio,我在 DrawerLayoutWidget 上收到“找不到类”。这是设置 build.gradle apply plu
我在我的应用程序中遇到了 multidex 支持的问题,实际上应用程序安装正常,但在此过程中,一些 Activity 崩溃了,应用程序重新启动了主要 Activity 。在 logcat 中我发现了这
我有这个错误。 Error:Execution failed for task ':myApp:createDebugMainDexClassList'. com.android.ide.common
我正在创建一个新的 android 项目,并决定使用新的 AndroidX 替代支持库,可以在此处找到相关文档:https://developer.android.com/jetpack/androi
我最近发现了 Android 的新 MultiDex 功能,可用于处理具有超过 65,000 个引用的应用程序。请参阅:https://developer.android.com/tools/buil
我更新了所有内置工具、支持库和 google Play 服务。但我仍然收到以下错误: Error:Execution failed for task ':app:shrinkReleaseMultiD
我正在使用 CircledImageView 库。它在 lollipop+ android 版本上运行良好。但是在 kitkat 中它崩溃了。所以在谷歌搜索之后。我发现我必须在我的应用程序中实现 mu
我是一名优秀的程序员,十分优秀!