Tag: ProGuard

Kotlin,Proguard和lambda

我有一个整洁的function,在视图上做一些事情: fun Activity.withView(nr : Int, fn : T.()->Unit) { (findViewById(nr) as T?)?.fn() } 现在,当我在我的活动中使用这个函数时: withView(R.id.spinner_toolbar) { adapter = AdapterIndeksuDlaSpinnera(this@NewMainActivity, PlaylistIndex) …一切正常,直到我使用ProGuard。 我可以看到AdapterIndeksuDlaSpinnera正如预期的AdapterIndeksuDlaSpinnera受到了损坏,但是当程序用“无法加载类AdapterIndeksuDlaSpinnera”(同时它应该抱怨损坏的适配器名称)进行编程时失败。 我能够通过禁用所有可以在我的withView使用的适配器来创建速度解决方法 -keep class pl.qus.xenoamp.adapter.** { *; } 但我不觉得这是一个好的解决方案(我不知道其他类可以以这种方式失败!)。 所以任何人都可以解释什么是问题,我应该添加什么样的ProGuard行来解决在withView使用的其他类的类似withView ?

运行时崩溃与Proguard启用房间持久性库

当启用了proguard时,我一直面对房间稳定版本的崩溃 FATAL EXCEPTION: main Process: .debug, PID: 27841 java.lang.RuntimeException: Unable to create application .DebugBaseApplication: java.lang.RuntimeException: cannot find implementation for .database.c. c_Impl does not exist at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5015) at android.app.ActivityThread.-wrap1(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1573) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5811) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:681) Caused by: java.lang.RuntimeException: cannot find implementation for .database.c. c_Impl does not exist […]

数据类toString,等得到优化的proguard?

Kotlin有这样一个data class ,它提供了像提供自动toString ,等等方便的function。但是如果我们不使用这些函数,它们会被proguard优化掉吗? 我问,因为我想知道如果我们应该谨慎使用data class (例如,我们不使用toString ,等等,我们不应该使用数据类,而是普通的类,即使他们是模型类.. )

无法在Kotlin中构建发布版本

在将我的Android项目转换为Kotlin后,我无法构建发布版本,错误似乎与Proguard有关。 我看到155个警告 Warning:com.example.app.activity.MainActivity$1: can’t find referenced field ‘android.view.View decorView’ in program class com.example.app.activity.MainActivity Warning:com.example.app.activity.MainActivity$2: can’t find referenced field ‘android.os.Handler handler’ in program class com.example.app.activity.MainActivity 并且构建失败 Error:Execution failed for task ‘:MyApp:transformClassesAndResourcesWithProguardForFreeRelease’. > Job failed, see logs for details 如果我在build.grade中将这些指令从true更改为false,则构建成功。 minifyEnabled true shrinkResources true 有什么问题可能是什么建议? 编辑: proguard文件如下: ProGuard的-android.txt # This is a configuration file for ProGuard. # […]

Kotlin Coroutines – 启用ProGuard的ClassNotFoundException

我有一个使用Coroutines库的Kotlin编写的已发布的应用程序,主要与Retrofit2一起用于API请求。 我正在使用另一个库, Kotlin Coroutines for Retrofit ,它将Coroutines和Retrofit2联系在一起。 在我的最新版本中,为了减小APK的大小,我将minifyEnabled true设置minifyEnabled true并按照我使用的库的指示添加了ProGuard规则。 问题: Google Play控制台通知我关于以下设备的崩溃:BQ Aquaris U Plus,Samsung Galaxy Grand Neo Plus,RCA 7 Voyager。 该应用程序在大多数设备上正常工作 堆栈跟踪: java.lang.RuntimeException: at kotlinx.coroutines.experimental.DispatchTask.run (CoroutineDispatcher.kt:127) at android.os.Handler.handleCallback (Handler.java:751) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:154) at android.app.ActivityThread.main (ActivityThread.java:6119) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776) Caused by: java.util.ServiceConfigurationError: at java.util.ServiceLoader.fail […]

连接moshi到Android Studio(Kotlin)

我在Android Studio中使用Kotlin。 我无法编译连接moshi库的项目。 https://github.com/square/moshi 告诉我,我做错了什么? 我可以在控制台中看到: :app:packageInstantRunResourcesDebug UP-TO-DATE :app:checkManifestChangesDebug :app:transformClassesWithAndroidGradleClassShrinkerForDebug com/squareup/moshi/JsonReader references unknown class: javax/annotation/Nullable com/squareup/moshi/CollectionJsonAdapter$1 references unknown class: javax/annotation/Nullable com/squareup/moshi/JsonAdapter$5 references unknown class: javax/annotation/Nullable com/squareup/moshi/package-info references unknown class: javax/annotation/ParametersAreNonnullByDefault com/squareup/moshi/ArrayJsonAdapter$1 references unknown class: javax/annotation/Nullable com/squareup/moshi/AdapterMethodsFactory$1 references unknown class: javax/annotation/Nullable okio/package-info references unknown class: javax/annotation/ParametersAreNonnullByDefault com/squareup/moshi/Types references unknown class: javax/annotation/Nullable com/squareup/moshi/JsonAdapter references unknown class: javax/annotation/Nullable […]

Proguard在Kotlin中剥离自定义注释

我的Kotlin项目使用MVP架构。 自定义注释正被用于垃圾桶主持人的视图,例如: @PresenterBinding(MyPresenter::class) class MyActivity{ 当这个项目与Proguard的建立 minifyEnabled true 演示者对视图的链接丢失,我得到kotlin.KotlinNullPointerException访问演示者函数 以下位在我的Proguard配置中(除其他保留规则之外) # Kotlin rules # -assumenosideeffects class kotlin.jvm.internal.Intrinsics { static void checkParameterIsNotNull(java.lang.Object, java.lang.String); } -keepclassmembers class **$WhenMappings { ; } -dontwarn kotlin.** -keep class kotlin.** -keepattributes *Annotation* 我已经尝试了很多东西,但没有运气。 任何指针的权利是值得欢迎的。

jackson未能对Kotlin数据类进行反序列化

我正在使用Jackson反序列化Kotlin数据类。 我正在使用jackson-kotlin-module但是Jackson给了我下面的错误: 无法构造MyClass的实例:找不到合适的构造函数,无法从Object值反序列化 我已经尝试添加proguard规则来保留我的类,它的构造函数没有任何成功。 如果我添加一个规则来保存所有的kotlin类,错误就会消失。 有任何想法吗?

如何使用Kotlin与Proguard

我正在尝试将Kotlin添加到我的项目中,并且需要使用proguard。 我应该将哪些规则添加到proguard来支持Kotlin? 谢谢

尝试构建发行版后,Android崩溃

该应用程序正常工作时,我作为一个调试版本导出,没有任何错误,但它在启动时崩溃时,我将其导出为发行版本。 我附加了Android监视器的错误 10-24 03:02:02.286 17303-17303/? E/CustomizationReader: appName = Prism 10-24 03:02:02.287 17303-17303/? E/CustomizationReader: key = sku_id 10-24 03:02:02.287 17303-17303/? E/CustomizationReader: Result = 33 10-24 03:02:02.531 24402-24402/? E/dalvikvm: Could not find class 'kotlin.jvm.internal.PropertyReference1Impl', referenced from method com.earnso.mangaworld.util.RarContentProvider.<clinit> 10-24 03:02:02.549 24402-24402/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.earnso.mangaworld, PID: 24402 java.lang.NoClassDefFoundError: kotlin.jvm.internal.PropertyReference1Impl at com.earnso.mangaworld.util.RarContentProvider.<clinit>(RarContentProvider.kt) at java.lang.Class.newInstanceImpl(Native Method) at […]