我期待在android apklib文件中混淆非公開方法等,以便我可以與其他人分發apklib文件,而不會妥協共享我的所有源代碼,因爲apklib包含源代碼。與運行Proguard使用Android Maven插件進行混淆的困難時間apklib
我採取的方法是通過使proguard.cfg在pom.xml中混淆庫中的項目非公開方式
這裏是我的proguard.cfg看起來像
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-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
-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 *;
}
這裏是我上的Maven收到錯誤安裝
[INFO] --- Android的Maven的插件:3.3.2:產生來源 (默認生成來源)@ libraryprojects-LIB1 --- [信息] ANDROID-904-002:找到aidl文件:計數= 0 [INFO] ANDROID-904-002: Found找到aidl文件:Count = 0 [INFO] C:\ GSDevelopment \ tools \ android-sdk \ platform-tools \ aapt.exe [package, -m,-J,C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ libraryprojects-lib1 \ target \ generated-sources \ r, -M,C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ libraryprojects-lib1 \ AndroidManifest.xml, -S,C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ libraryprojects-lib1 \ res, - 自動添加疊加,-A,C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ libraryprojects-lib1 \ assets, -I,C:\ GSDevelopment \ tools \ android-sdk \ platforms \ android-14 \ android.jar] [INFO] [INFO] --- maven-resources-plugin: 2.6:資源 (默認資源)@ libraryprojects-lib1 --- [INFO]使用'UTF-8' 編碼來複制已過濾的資源。 [信息]複製1資源[INFO] 跳過不存在的資源目錄 C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ libraryprojects-lib1 \ target \ generated-sources \ extracted-dependencies \ src \ main \ resources [INFO] [ INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile)@ libraryprojects-lib1 --- [INFO]編譯2源文件 文件到 C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ libraryprojects-lib1 \ target \ classes [INFO] [INFO] --- android-maven-plugin:3.3.2:proguard (default-proguard)@ libraryprojects-lib1 --- [INFO] C:\ GSDevelopment \ tools \ java \ jdk1.6.0_33 \ jre \ bin \ java [-Xmx512M,-jar, C:\ GSDevelopment \ tools \ android-sdk \ tools \ proguard \ lib \ proguard.jar, @ proguard.cfg,-injars, 'C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ libraryprojects-lib1 \ target \ classes', -libraryjars,'C:\ GSDevelopment \ tools \ java \ jdk1.6.0_33 \ jre \ lib \ rt.jar', -libraryjars,'C:\ GSDevelopment \ tools \ java \ jdk1.6.0_33 \ jre \ lib \ jsse.jar', -libraryjars,'C:\ GSDevelopment \ tools \ java \ jdk1.6.0_33 \ jre \ lib \ jce.jar', -libraryjars,c:.m2GSD \ repository \ com \ google \ android \ android \ 4.0.1.2 \ android-4.0.1.2.jar(!org/xml/,!org/w3c/,!java/,!javax/),-libraryjars,'c:.m2GSD \ repository \ commons-logging \ commons-logging \ 1.1.1 \ commons-logging-1.1。 1.jar', -libraryjars,'c:.m2GSD \ repository \ org \ apache \ httpcomponents \ httpclient \ 4.0.1 \ httpclient- 4.0.1.jar', -libraryjars,'c:.m2GSD \ repository \ org \ apache \ httpcomponents \ httpcore \ 4.0.1 \ httpcore-4.0.1.jar', -libraryjars,'c:.m2GSD \ repository \ commons-codec \ commons-codec \ 1.3 \ commons-codec-1.3.jar', -libraryjars,'c:.m2GSD \ repository \ org \ khronos \ opengl-api \ gl1.1-android-2.1_r1 \ OpenGL的API-gl1.1-Android的2.1_r1。jar', -libraryjars,'c:.m2GSD \ repository \ xerces \ xmlParserAPIs \ 2.6.2 \ xmlParserAPIs-2.6.2.jar', -libraryjars,'c:.m2GSD \ repository \ xpp3 \ xpp3 \ 1.1。 4c \ xpp3-1.1.4c.jar',-libraryjars,'c:.m2GSD \ repository \ org \ json \ json \ 20080701 \ json-20080701.jar', -outjars,'C:\ GSDevelopment \ expworkspace \ Samples \ LibraryProjects \ libraryprojects-lib1 \ target \ proguard \ dump.txt', -printseeds', -dump,'C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ libraryprojects-lib1 \ target \ proguard \ seeds.txt', -printusage,'C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ libraryprojects-lib1 \ target \ proguard \ usage。 txt', -printmapping,'C:\ GSDevelopment \ expworkspace \ Samples \ libraryprojects \ l文庫項目-lib1 \ target \ proguard \ mapping.txt'] [INFO]注意:有185個重複的類定義。 [INFO] java.io.IOException:輸出jar爲空。您是否指定了 正確的'-keep'選項? [INFO] at proguard.shrink.Shrinker.execute(Shrinker.java:159)[INFO] at proguard.ProGuard.shrink(ProGuard.java:275)[INFO] at proguard.ProGuard.execute(ProGuard.java :101)[INFO]在 proguard.ProGuard.main(ProGuard.java:492)
我有兩個私有方法兩個Java文件。任何人都可以指出我可能會出錯嗎?提前致謝。