❶ 如何使用android Studio打包混淆的Jar
你好,AndroidStudio上混淆打包apk方法://混淆,新版本是ninifyEnabled不再是runproguardminifyEnabledtrue//載入默認混淆配置文件及自定義混淆配置('proguard-android.txt'),'proguard.cfg'設置minifyEnabledtrue,就會在打包的時候進行代碼混淆處理.其中proguard-android.txt不用管,在sdk目錄裡面,主要是配置了proguard.cfg文件。直接在androidstudio創建項目不會有這個文件,而是proguard-rules.pro文件,其實一樣的,因為項目是從eclipse遷移過來的,之前在eclipse上混淆是proguard.cfg文件.
❷ 如何使用Android Studio打包混淆的Jar
以項目bannerDemo 為例,混淆步驟如下:
在你的library的build.gradle文件中加入如下代碼:
task makeJar(type: proguard.gradle.ProGuardTask, dependsOn: "build") {
// 未混淆的jar路徑
injars 'build/intermediates/bundles/release/classes.jar'
// 混淆後的jar輸出路徑
outjars 'build/outputs/cocolove2-banner-1.1.0.jar'
// 混淆協議
configuration 'proguard-rules.pro'
}
❸ Android Studio上如何混淆打包apk
Android Studio上混淆打包apk方法:
//混淆,新版本是ninifyEnabled不再是runproguard
minifyEnabled true
//載入默認混淆配置文件及自定義混淆 配置
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard.cfg'
設置minifyEnabled true,就會在打包的時候進行代碼混淆處理. 其中proguard-android.txt不用管,在sdk目錄裡面,主要是配置了proguard.cfg文件。
直接在android studio創建項目不會有這個文件,而是 proguard-rules.pro文件,其實一樣的,因為項目是從eclipse遷移過來的,之前在eclipse上混淆是 proguard.cfg文件.
❹ Android studio混淆打包的時候一直失敗
就是找不到指定的混淆文件,看看項目中有沒有混淆文件,指定的路徑是否一致。
❺ android studio 代碼混淆錯誤
1,androidstudio1.3之後的版本就沒有GenerateSignedAPK—RunProGuard這個選項了!要在build.grandle把minifyEnabled改成Ture就可以了!minifyEnabledtrue下面是我使用的代碼:#指定代碼的壓縮級別-optimizationpasses5#包明不混合大小寫-dontusemixedcaseclassnames#不去忽略非公共的庫類-#優化不優化輸入的類文件-dontoptimize#預校驗-dontpreverify#混淆時是否記錄日誌-verbose#混淆時所採用的演算法-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*#保護註解-keepattributes*Annotation*#保持哪些類不被混淆#-keeppublicclass*extendsandroid.app.Fragment#如果有引用v4包可以添加下面這行-keeppublicclass*extendsandroid.support.v4.app.Fragment#忽略警告-ignorewarning#####################記錄生成的日誌數據,gradlebuild時在本項目根目錄輸出#################apk包內所有class的內部結構-mpclass_files.txt#未混淆的類和成員-printseedsseeds.txt#列出從apk中刪除的代碼-printusageunused.txt#混淆前後的映射-printmappingmapping.txt#####################記錄生成的日誌數據,gradlebuild時在本項目根目錄輸出-end################################混淆保護自己項目的部分代碼以及引用的第三方jar包library##########################-libraryjarslibs/xUtils-2.6.14.jar#-libraryjarslibs/alipaysdk.jar#-libraryjarslibs/alipaysecsdk.jar#-libraryjarslibs/alipayutdid.jar#-libraryjarslibs/wup-1.0.0-SNAPSHOT.jar#-libraryjarslibs/weibosdkcore.jar#三星應用市場需要添加:sdk-v1.0.0.jar,look-v1.0.1.jar#-libraryjarslibs/sdk-v1.0.0.jar#-libraryjarslibs/look-v1.0.1.jar#我是以libaray的形式引用了一個圖片載入框架,如果不想混淆keep掉-keepclasscom.nostra13.universalimageloader.**{*;}#忽略警告-dontwarncom.veidy.mobile.common.**#保留一個完整的包-keepclasscom.veidy.mobile.common.**{*;}#如果引用了v4或者v7包-dontwarnandroid.support.**############混淆保護自己項目的部分代碼以及引用的第三方jar包library-end###################-keeppublicclass*extendsandroid.view.View{#public(android.content.Context);#public(android.content.Context,android.util.AttributeSet);#public(android.content.Context,android.util.AttributeSet,int);#publicvoidset*();#}#保持native方法不被混淆-*{native;}#保持自定義控制項類不被混淆#-keepclasseswithmembersclass*{#public(android.content.Context,android.util.AttributeSet);#}#保持自定義控制項類不被混淆#-keepclasseswithmembersclass*{#public(android.content.Context,android.util.AttributeSet,int);#}#保持自定義控制項類不被混淆#-keepclassmembersclass*extendsandroid.app.Activity{#publicvoid*(android.view.View);#}#保持Parcelable不被混淆-keepclass*implementsandroid.os.Parcelable{publicstaticfinalandroid.os.Parcelable$Creator*;}#保持Serializable不被混淆-keepnamesclass*implementsjava.io.Serializable#保持Serializable不被混淆並且enum類也不被混淆-keepclassmembersclass*implementsjava.io.Serializable{;privatestaticfinaljava.io.ObjectStreamField[]serialPersistentFields;!static!transient;!private;!private;privatevoidwriteObject(java.io.ObjectOutputStream);privatevoidreadObject(java.io.ObjectInputStream);java.lang.ObjectwriteReplace();java.lang.ObjectreadResolve();}#保持枚舉enum類不被混淆如果混淆報錯,建議直接使用上面的-keepclassmembersclass*implementsjava.io.Serializable即可#-keepclassmembersenum*{#publicstatic**[]values();#publicstatic**valueOf(java.lang.String);#}-keepclassmembersclass*{publicvoid*ButtonClicked(android.view.View);}#不混淆資源類-keepclassmembersclass**.R$*{publicstatic;}#避免混淆泛型如果混淆報錯建議關掉#–keepattributesSignature#移除log測試了下沒有用還是建議自己定義一個開關控制是否輸出日誌-.util.Log{publicstaticbooleanisLoggable(java.lang.String,int);publicstaticintv();publicstaticinti();publicstaticintw();publicstaticintd();publicstaticinte();}
❻ 用android studio混淆報的錯,這怎麼弄
在Eclipse中,會有紅色X的圖標提示錯誤。在滑鼠移動到圖標時,可以看到代碼錯誤原因描述,如圖:點擊該圖標,會給出修復這個問題的提示,如圖:在AndroidStudio,是紅色波浪線提示,如圖:游標定位到錯誤代碼行時,可以看到代碼錯誤原因描述,如圖:點擊旁邊的圖標,或者用快捷鍵Alt+Enter,就可以看到修復這個問題的提示,如圖:7根據提示就可以快速修復代碼問題了。
❼ 關於Android studio 怎麼使用代碼混淆的問題
Android Studio上混淆打包apk方法: //混淆,新版本是ninifyEnabled不再是runproguard minifyEnabled true //載入默認混淆配置文件及自定義混淆 配置 proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard.cfg' 設置minifyEnabled true,就會在打包的時候進行代碼混淆處理. 其中proguard-android.txt不用管,在sdk目錄裡面,主要是配置了proguard.cfg文件。 直接在android studio創建項目不會有這個文件,而是 proguard-rules.pro文件,其實一樣的,因為項目是從eclipse遷移過來的,之前在eclipse上混淆是 proguard.cfg文件.
❽ androidstudio混淆打包報錯怎麼辦
把你的BaseAnimatorSet類給keep了。。
其中proguard-android.txt文件是本地sdk/tools/proguard文件夾下的默認文件;prguard-rules.pro文件就是用來編寫混淆代碼的;
接下來就是在prguard-rules.pro文件中編寫混淆代碼:
關於其中代碼的理解,可以參考這篇文章:代碼混淆詳解
編寫完混淆代碼,混淆也就算完成了,接下來就是打包了,但是,混淆的時候可能會遇到各種問題,主要是混淆代碼,因為涉及到有的類不需要混淆,混淆了就會報錯運行不了,所以在編寫混淆代碼的時候一定要小心,其實一般注意這幾點就好了:
不需要導入第三方類庫的代碼,如上圖注釋的部分:-libraryjars libs/BaiLBS_Android.jar等。
濾掉第三方包,也就是不需要混淆第三方包,比如常見的 android-support-v4.jar:
[code]-ignorewarnings
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep public class * extends android.support.v4.**
-keep public class * extends android.app.Fragment
❾ android studio 極光推送混淆
Android studio 默認混淆規則文件為 Proguard-rules.pro,只需要將【極光混淆規則】加入到此文件。