當前位置:首頁 » 安卓系統 » androidgson混淆

androidgson混淆

發布時間: 2022-05-22 09:40:12

Ⅰ android混淆代碼時,沒有keep的類都會混淆是嗎

-keep 包名(不混淆的包名) 廣告的代碼類不需要混淆了。將它的包名keep 就好了~~

Ⅱ android 代碼混淆的時候,怎麼排除第3方Jar包,求教

Gson specific classes
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
這行代碼排除 google的json解析包gson

-keep class 包名.** {*; }
排除自己項目的某個包名,當然可以用來排除第三方jar包的
如-keep class com.yangfuhai.http.** {*; }

Ⅲ android proguard 混淆後gson解析數據一直為null

在處理gson庫混淆的時候,還需要再加上下面一段才能使gson的功能正常使用;

##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
-keep class com.google.gson.**{*;}
##---------------End: proguard configuration for Gson ----------

Ⅳ android 阿里雲短視頻上傳,混淆代碼是什麼

是否集成了第三方SDK,查看是否是其它SDk混淆導致的。
關於代碼混淆注意事項
摘要:若使用studio新建項目,會自動生成混淆的相關文件,已經入過很多坑,有幾點需注意。1.作為library的mole,不可進行混淆,否則其他mole無法引用,因為會找不到其中被混淆的類,可在主mole中配置混淆.2.注意項目中的bean,尤其是實現Serializable介面的類,在用bundle傳輸時會出現的問題,必須keep其變數:keepclassmembersclass*implementsjava.io.Serializable{*;}3.一定要keep
若使用studio新建項目,會自動生成混淆的相關文件,已經入過很多坑,有幾點需注意。
1.作為library的mole,不可進行混淆,否則其他mole無法引用,因為會找不到其中被混淆的類,可在主mole中配置混淆.
2.注意項目中的bean,尤其是實現 Serializable介面的類,在用bundle傳輸時會出現的問題,必須keep其變數:keepclassmembers class * implements java.io.Serializable {*;}
3.一定要keep安卓的主要組件類名,如activity,service等等。
Keep public class * extends android.app.activity
4.一定keep第三方類庫中的所有東東
Keep class com..**{*;}
5.注意keep Gson,json,R文件,介面,用到 js 調用時注意webview。

Ⅳ android gson需要混淆嗎

需要不需要都可以,我的項目沒有混淆他,只是添加了這個

-dontwarn com.google.gson.**

Ⅵ android 怎麼實現只混淆自己的代碼,而不混淆第3方jar包

1. 新建一個工程會看到項目下邊有這樣proguard-project.txt一個文件,這個對混淆代碼很重要,如果不小心刪掉了,沒關系,從其他地方拷貝一個過來
2. 最重要的就是在proguard-project.txt添加混淆的申明了:
a. 把所有的jar包都申明進來,例如:
-libraryjars libs/apns_1.0.6.jar
-libraryjars libs/armeabi/libBaiMapSDK_v2_3_1.so
-libraryjars libs/armeabi/liblocSDK4.so
-libraryjars libs/mapapi_v2_3_1.jar
-libraryjars libs/core.jar
-libraryjars libs/gesture-imageview.jar
-libraryjars libs/gson-2.0.jar
-libraryjars libs/infogracesound.jar
-libraryjars libs/locSDK_4.0.jar
-libraryjars libs/ormlite-android-4.48.jar
-libraryjars libs/ormlite-core-4.48.jar
-libraryjars libs/universal-image-loader-1.9.0.jar

b. 將你不需要混淆的部分申明進來,因為有些類經過混淆會導致程序編譯不通過,如下:

-keep public class * extends android.app.Fragment
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.**
-keep public class com.android.vending.licensing.ILicensingService

--以上都是API里邊的類,最好都要避免混淆

有些很特殊的,例如網路地圖,你需要添加以下申明:

-keep class com..** { *; }
-keep class vi.com.gdi.bgl.android.**{*;}

根據我的經驗,一般model最好避免混淆(model無關緊要,不混淆也沒多大關系)如:

-keep class com.bank.pingan.model.** { *; }
下面在貼上關於Umeng分享統計的避免混淆的申明

-dontwarn android.support.v4.**
-dontwarn org.apache.commons.net.**
-dontwarn com.tencent.**

-keepclasseswithmembernames class * {
native <methods>;
}

-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

-keepclasseswithmembers class * {
public <init>(android.content.Context);
}

-dontshrink
-dontoptimize
-dontwarn com.google.android.maps.**
-dontwarn android.webkit.WebView
-dontwarn com.umeng.**
-dontwarn com.tencent.weibo.sdk.**
-dontwarn com.facebook.**

-keep enum com.facebook.**
-keepattributes Exceptions,InnerClasses,Signature
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable

-keep public interface com.facebook.**
-keep public interface com.tencent.**
-keep public interface com.umeng.socialize.**
-keep public interface com.umeng.socialize.sensor.**
-keep public interface com.umeng.scrshot.**

-keep public class com.umeng.socialize.* {*;}
-keep public class javax.**
-keep public class android.webkit.**

-keep class com.facebook.**
-keep class com.umeng.scrshot.**
-keep public class com.tencent.** {*;}
-keep class com.umeng.socialize.sensor.**

-keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*;}

-keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*;}

-keep class im.yixin.sdk.api.YXMessage {*;}
-keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}

-keep public class [your_pkg].R$*{
public static final int *;
}
3.以上工作完成,混淆工作就完成了一大半了,最後需要做的就是在project.properties文件中加上混淆文件申明了,如下
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
4. OK, 最後一步,打簽名包測試,如果有問題,仔細看下Log也許有得類不能混淆,那麼你得加入到proguard-project.txt文件中
-------以上就是混淆代碼的全過程了

Ⅶ android fragment可以混淆嗎

為了防止自己的勞動成果被別人竊取,混淆代碼能有效防止被反編譯,下面來總結以下混淆代碼的步驟:
1. 大家也許都注意到新建一個工程會看到項目下邊有這樣proguard-project.txt一個文件,這個對混淆代碼很重要,如果你不小心刪掉了,沒關系,從其他地方拷貝一個過來
2. 最重要的就是在proguard-project.txt添加混淆的申明了:
a. 把所有你的jar包都申明進來,例如:
-libraryjars libs/apns_1.0.6.jar
-libraryjars libs/armeabi/libBaiMapSDK_v2_3_1.so
-libraryjars libs/armeabi/liblocSDK4.so
-libraryjars libs/mapapi_v2_3_1.jar
-libraryjars libs/core.jar
-libraryjars libs/gesture-imageview.jar
-libraryjars libs/gson-2.0.jar
-libraryjars libs/infogracesound.jar
-libraryjars libs/locSDK_4.0.jar
-libraryjars libs/ormlite-Android-4.48.jar
-libraryjars libs/ormlite-core-4.48.jar

Ⅷ android 混淆為什麼不能混淆bean

bean本身是可以混淆的,但是bean一般會被gson等序列化,如果混淆會導致找不到變數,如果寫法上規范是可以混淆的

Ⅸ android-android怎麼實現只混淆自己的代碼,而不混淆第3方jar包

當項目中有第3方jar包時,怎麼實現混淆打包,而不對第3方包混淆
在項目中有第3方包時打包出錯日誌:

[2012-06-14 14:14:28 - humei_cc] Proguard returned with error code 1. See console

[2012-06-14 14:14:28 - humei_cc] Note: there were 2068 plicate class definitions.

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.datatransfer.DataProxy: can't find superclass or interface java.awt.datatransfer.Transferable

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.datatransfer.NativeClipboard: can't find superclass or interface java.awt.datatransfer.Clipboard

[2012-06-14 14:14:28 - humei_cc] Warning: javax.activation.CommandInfo: can't find referenced class java.beans.Beans

[2012-06-14 14:14:28 - humei_cc] Warning: javax.activation.CommandInfo: can't find referenced class java.beans.Beans

[2012-06-14 14:14:28 - humei_cc] Warning: com.sun.mail.imap.protocol.IMAPSaslAuthenticator: can't find referenced class javax.security.sasl.SaslException

[2012-06-14 14:14:28 - humei_cc] Warning: com.sun.mail.imap.protocol.IMAPSaslAuthenticator: can't find referenced class javax.security.sasl.SaslException

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.datatransfer.DataSource: can't find referenced class java.awt.datatransfer.DataFlavor

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.datatransfer.DataSource: can't find referenced class java.awt.datatransfer.DataFlavor

………………………………………………………………………………中間部分省略

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.ContextStorage: can't find referenced class java.awt.Toolkit

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.ContextStorage: can't find referenced class java.awt.Toolkit

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.ContextStorage: can't find referenced class java.awt.GraphicsEnvironment

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.ContextStorage: can't find referenced class java.awt.GraphicsEnvironment

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.ContextStorage: can't find referenced class java.awt.GraphicsEnvironment

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.datatransfer.NativeClipboard: can't find referenced class java.awt.datatransfer.Clipboard

[2012-06-14 14:14:28 - humei_cc] Warning: org.apache.harmony.awt.datatransfer.NativeClipboard: can't find referenced class java.awt.datatransfer.Clipboard

[2012-06-14 14:14:28 - humei_cc] Warning: there were 288 unresolved references to classes or interfaces.

[2012-06-14 14:14:28 - humei_cc] You may need to specify additional library jars (using '-libraryjars'),

[2012-06-14 14:14:28 - humei_cc] or perhaps the '-' option.

[2012-06-14 14:14:28 - humei_cc] java.io.IOException: Please correct the above warnings first.

[2012-06-14 14:14:28 - humei_cc] at proguard.Initializer.execute(Initializer.java:308)

[2012-06-14 14:14:28 - humei_cc] at proguard.ProGuard.initialize(ProGuard.java:210)

[2012-06-14 14:14:28 - humei_cc] at proguard.ProGuard.execute(ProGuard.java:85)

[2012-06-14 14:14:28 - humei_cc] at proguard.ProGuard.main(ProGuard.java:499)
我的proguard.cfg 文件時這樣的

-optimizationpasses 5

-dontusemixedcaseclassnames

-

-verbose

-ignorewarnings

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-libraryjars libs/bcprov-jdk15on-147.jar

-libraryjars libs/PanoramaGL.jar

-libraryjars libs/activation.jar

-libraryjars libs/additionnal.jar

-libraryjars libs/mail.jar

-keep public class * extends android.app.Activity

-keep public class * extends android.app.Application

-keep public class * extends android.app.Service

-keep public class * extends android.content.BroadcastReceiver

-keep public class * extends android.content.ContentProvider

-keep public class * extends android.app.backup.BackupAgentHelper

-keep public class * extends android.preference.Preference

-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {

native <methods>;

}

-keepclasseswithmembers class * {

public <init>(android.content.Context, android.util.AttributeSet);

}

-keepclasseswithmembers class * {

public <init>(android.content.Context, android.util.AttributeSet, int);

}

-keepclassmembers class * extends android.app.Activity {

public void *(android.view.View);

}

-keepclassmembers enum * {

public static **[] values();

public static ** valueOf(java.lang.String);

}

-keep class * implements android.os.Parcelable {

public static final android.os.Parcelable$Creator *;

}
已經嘗試的方案:方案一: 加入-ignorewarnings 可以正常打包了。 能過濾掉警告信息。但是治標不治本,打好的包,在實際運行中用到過的第3方包類庫時,均報空指針。方案二:不使用-ignorewarnings 添加-dontwarn java.awt.datatransfer.Transferable.** 警告信息並沒有減少,打包會失敗。

Ⅹ 怎麼混淆 gsonfromat 生成的bean類

myeclipse中自帶有xfire,在使用wsdl生成客戶端時選擇使用xfire生成,然後會有一個驗證wsdl的過程,驗證通過,生成時如果不報錯,就會成功。

熱點內容
如何撤回密碼 發布:2025-08-22 02:30:36 瀏覽:676
安卓系統怎麼用藍牙傳給蘋果手機 發布:2025-08-22 02:27:51 瀏覽:477
android獲取數組 發布:2025-08-22 02:24:04 瀏覽:648
徵型壓縮機 發布:2025-08-22 02:10:15 瀏覽:496
真空壓縮袋能上飛機嗎 發布:2025-08-22 02:10:01 瀏覽:96
怎麼刪除伺服器文件 發布:2025-08-22 02:04:07 瀏覽:170
爐石傳說威脅腳本投降 發布:2025-08-22 01:54:10 瀏覽:332
大大哇腳本 發布:2025-08-22 01:49:32 瀏覽:96
python2pip 發布:2025-08-22 01:48:56 瀏覽:390
php和null 發布:2025-08-22 01:48:49 瀏覽:966