Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Proguard进行模糊处理时的可包裹问题_Java_Android_Obfuscation_Proguard_Parcelable - Fatal编程技术网

Java 使用Proguard进行模糊处理时的可包裹问题

Java 使用Proguard进行模糊处理时的可包裹问题,java,android,obfuscation,proguard,parcelable,Java,Android,Obfuscation,Proguard,Parcelable,我的应用程序在模糊处理之前工作正常,但当我启用proguard时,会出现以下错误: 2013-05-02 13:43:58.772 E 30138/AndroidRuntime: FATAL EXCEPTION: main java.lang.NumberFormatException: Invalid long: "0.20" at java.lang.Long.invalidLong(Long.java:125) at java.lang.Long.parse(Long.ja

我的应用程序在模糊处理之前工作正常,但当我启用proguard时,会出现以下错误:

2013-05-02 13:43:58.772 E 30138/AndroidRuntime: FATAL EXCEPTION: main java.lang.NumberFormatException: Invalid long: "0.20"
    at java.lang.Long.invalidLong(Long.java:125)
    at java.lang.Long.parse(Long.java:362)
    at java.lang.Long.parseLong(Long.java:353)
    at java.lang.Long.parseLong(Long.java:319)
    at com.sourcetone.data.model.Station.long getId()(SourceFile:195)
    at com.sourcetone.STStationListFragment.void deleteStation(com.sourcetone.data.model.Station)(SourceFile:298)
    at com.sourcetone.STStationListFragment.void access$4(com.sourcetone.STStationListFragment,com.sourcetone.data.model.Station)(SourceFile:293)
    at com.sourcetone.STStationListFragment$ArrayListAdapter$1.void onClick(android.view.View)(SourceFile:274)
    at android.view.View.performClick(View.java:3528)
    at android.view.View$PerformClick.run(View.java:14217)
    at android.os.Handler.handleCallback(Handler.java:605)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4482)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:561)
    at dalvik.system.NativeStart.main(Native Method)

2013-05-02 13:43:58.803 W 472/ActivityManager:   Force finishing activity com.sourcetone/.STMainActivity
我的proguard配置具有以下功能:

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
所以包裹应该被保管好,对吗?它抛出的无效Long实际上是我请求的另一部分,因此它读取了错误的号码。我也必须保持我的HttpResponse类吗?还可能是什么

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
不会保持类的所有内容不变,它只保留类名和CREATOR方法

尝试将字段也保留在您的Parcelable类中,添加如下内容:

-keepclassmembers class * implements android.os.Parcelable {
 public <fields>;
}
-keepclassmembers类*实现android.os.Parcelable{
公众;
}
它将只保留类名和创建者

你应该把它改成

-keepclassmembers class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator CREATOR;
}
默认android规则包括上述说明,如果您保留默认生成的渐变定义,也将应用于您的项目:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

这取决于你如何解析你的请求。您正在使用哪些反射库?格森,杰克逊?
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'