gpt4 book ai didi

java - 在android中设置proguard规则,它可以只加密代码吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:59:30 24 4
gpt4 key购买 nike

我的应用程序中使用了多个库,在 minifyEnabledtrue 后,它无法生成 APK。经过一番研究,我找到了规则,并将其一一添加到.pro文件中。

这是库列表

compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.squareup.picasso:picasso:2.3.2'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.daimajia.slider:library:1.1.5@aar'
compile 'org.apache.httpcomponents:httpmime:4.3.5'//Volley
compile 'org.apache.httpcomponents:httpcore:4.2.4'//Volley
compile 'com.mcxiaoke.volley:library:1.0.17'//Volley
compile 'com.github.bumptech.glide:glide:3.6.1'//Gradle
compile 'com.baoyz.swipemenulistview:library:1.3.0'//Swipe Menu li stview
compile 'org.lucasr.twowayview:twowayview:0.1.4' //horizontal listview
compile 'com.android.support:recyclerview-v7:+'

对于 JAR,它是 PayPalAndroidSDK-2.9.11.jar

简而言之,我想知道是否可以不为库一一添加规则,因为有些库似乎没有提到如何为它们设置proguard?它可以只加密而不是优化代码并剥离一些有用的代码吗?

非常感谢。

最佳答案

I wonder is it possible not to add the rule one by one for the libraries, as some library seems does not mention about how to setup proguard for them?

是的,这是可能的,而不是为您在项目中使用的每个库一一添加规则。尝试在您的 proguard-rules.pro 文件中添加以下内容。

-keep class !com.example.myproject.** { *; }

这个想法只是简单地将否定符与您在 proguard-rules.pro 中使用的正则表达式放在一起。

但是,如果您不混淆代码,那么使用混淆器有什么意义呢?您可能希望在混淆后保持项目中的某些类不变。你只需要像其他库一样保存它们。例如-

// I want to keep the classes in the `Models` package to remain unchanged
-keep class com.example.myproject.Models.** { *; }
-keepclassmembers class com.example.myproject.Model.** { *; }

无论如何,一条一条地添加规则并不难,因为您在混淆时会有更多的控制权。这是我的 proguard-rules.pro。你可以看看它。

-useuniqueclassmembernames
-allowaccessmodification
-keep class com.google.** { *; }
-keep class com.journeyapps.** { *; }
-keep class com.makeramen.** { *; }
-keep class com.github.** { *; }
-keep class org.apache.** { *; }
-keep class com.flipboard.** { *; }
-keep class com.android.** { *; }
-keep class com.mikepenz.** { *; }
-keep class junit.** { *; }
-keep class org.mockito.** { *; }
-keep class android.support.v7.widget.SearchView { *; }
-keep class com.example.myproject.Models.** { *; }
-keepclassmembers class com.example.myproject.Model.** { *; }

-keepattributes Signature
-keepattributes *Annotation*

-dontwarn com.google.**
-dontwarn org.apache.**
-dontwarn android.support.**
-dontwarn org.junit.**
-dontwarn org.mockito.**
-dontwarn com.makeramen.**

-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** w(...);
public static *** i(...);
public static *** e(...);
}

关于java - 在android中设置proguard规则,它可以只加密代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40033378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com