بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل با obfuscate کردن لایبرری ormlite [حل شد]

مدیریت گفتگو
PandaStudio 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام دوستان

من از لایبرری ormlite برای کار با پایگاه داده کار میکنم و برنامه خیلی عالی و خوب جواب میده منتها وقتی از Proguard برای obfuscate کردن استفاده میکنم یا با ارور مواجه میشم یا اگه هم obfuscate بشه برنامه را که نصب میکنم وقتی می خوام به پایگاه داده دسترسی پیدا کنم کرش میکنه.

لطفا اگه تو این زمینه کار کردید راهنماییم کنید.

عمده کدهای موجود برای obfuscate کردن هم که باید داخل Proguard بنویسیم هرجا سرچ کردم اینا بود

# OrmLite uses reflection
-keep class com.j256.**
-keepclassmembers class com.j256.** { *; }
-keep enum com.j256.**
-keepclassmembers enum com.j256.** { *; }
-keep interface com.j256.**
-keepclassmembers interface com.j256.** { *; }

-keepattributes Signature -keepattributes *Annotation*

-libraryjars libs/ormlite-android-4.48.jar
-libraryjars libs/ormlite-core-4.48.jar

نظرات

PandaStudio 11 سال پیش
متوجه منظورتون نشدم میشه بیشتر توضیح بدید
@DatabaseTable - @DatabaseField - رو باید برای کلاس اصلی و فیلداش مشخص کنی، تو داکیومنتش در موردشون نوشته

پاسخ‌ها 2

PandaStudio 11 سال پیش

این کارو انجام دادم نمونشم در زیر گذاشتم منتها بعد از obfuscate برنامه کرش میکنه

@DatabaseTable
public class StructCategories implements Serializable {

    private static final long serailVersionID = -4561728371283721L;

    @DatabaseField(id = true)
    private Integer           id;

    @DatabaseField
    private String            name;


    public Integer getId() {
        return id;
    }


    public void setId(Integer id) {
        this.id = id;
    }


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }


    @Override
    public String toString() {
        return name == null ? "<None>" : name;
    }
}

نظرات

PandaStudio 11 سال پیش

از کد زیر در proguard استفاده کنید درست میشه

-ignorewarnings

-dontnote
-libraryjars libs/ormlite-android-4.48.jar
-libraryjars libs/ormlite-core-4.48.jar

-keepattributes Signature
#نام پکیجی که کلاس های مدل داخلشه را باید در زیر بنویسید -keep class com.xyz.model.** -keepclassmembers class com.xyz.model.** { *; }
-keep class com.j256.** -keepclassmembers class com.j256.** { *; } -keep enum com.j256.** -keepclassmembers enum com.j256.** { *; } -keep interface com.j256.** -keepclassmembers interface com.j256.** { *; } -keepclassmembers class * { public <init>(android.content.Context); } -keepattributes *Annotation*

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .