gpt4 book ai didi

android - 在 Android 上使用带有混淆器的 ORMLite 崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:55:35 25 4
gpt4 key购买 nike

我们在我们的 Android 应用程序中使用 ORMLite。它工作正常,除非我们尝试在打开混淆器的情况下进行构建。

我读过各种类似的帖子,到目前为止,我已经在我的 proguard-project.txt 中找到了

-keep class com.j256.** {
*;
}

如以下讨论 http://sourceforge.net/p/proguard/discussion/182456/thread/6765bb69 中所建议的那样

我有

-keepclassmembers class * { 
public <init>(android.content.Context);
public <init>(android.app.Activity,int);
}

如另一个 stackoverflow 问题 Proguard with OrmLite on Android 中所建议的那样

但是还是不行。如果我添加

,我 可以让它运行
-dontobfuscate

但这有点忽略了首先使用混淆器的意义。

当我运行时我得到一个

IllegalStateException: Could not find OpenHelperClass because none of the generic
parameters of class class <our.package.name>.LaunchActivity extends
OrmLiteSqliteOpenHelper. You should use getHelper(Context, Class) instead.

在哪里

public class LaunchActivity extends OrmLiteBaseActivity<DatabaseHelper>

public class DatabaseHelper extends OrmLiteSqliteOpenHelper

我已经添加了

-keep public class * extends com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper

-keep public class <our.package.name>.LaunchActivity

但仍然没有运气。之前似乎有人问过这个问题 (Problems with OrmLite and proguard obfuscation),但我希望有人知道解决方案是什么!

最佳答案

错误消息提到了generic 参数,因此 ORMLite 可能正在使用反射来检索通用类型信息。此信息存储在可选的 Signature 属性中(Java 删除泛型类型),ProGuard 默认将其删除。你可以把它们放在一起

-keepattributes Signature

关于android - 在 Android 上使用带有混淆器的 ORMLite 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14264199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com