proguard-android-optimize
全部标签 我想用gradle为不同的客户构建一个java库。在“纯”gradle中是否有类似android产品口味的东西?谢谢。 最佳答案 答案是肯定的,但您将不得不使用新的Gradle软件模型,它正在孵化。这将是一条充满痛苦的道路,因为您将成为开拓者,因为我已经学会了将它用于C/Cpp项目。您的构建通常如下所示。plugins{id'jvm-component'id'java-lang'}model{buildTypes{debugrelease}flavors{freepaid}components{server(JvmLibrarySp
LeakCanary可以用在非Android应用上吗?例如,在JavaFx应用程序中? 最佳答案 简短的回答是不可以。LeakCanarydocumentationsite是这样说的:LeakCanary’sknowledgeoftheinternalsoftheAndroidFrameworkgivesitauniqueabilitytonarrowdownthecauseofeachleak,helpingdevelopersdramaticallyreduceOutOfMemoryErrorcrashes.据此,我们推断正是该
我通过名为Xamarin.GradleBinding的VisualStudio扩展创建了Java绑定(bind)库。我添加了ru.rambler.android:swipe-layout:1.0.14包,在使用它的SwipeLayout时,一切正常。但不幸的是,它没有创建相应的C#类或类似的东西。我尝试手动添加包,但仍然没有。我检查了sourceonGitHub.SwipeLayout有一个publicvoid方法reset()没有参数:publicvoidreset()我尝试使用JNIEnv从c#调用此方法。IntPtrtype=JNIEnv.FindClass("ru/ramble
这是有问题的配置设置:-keep@interface*这篇文章中引用了此设置:https://stackoverflow.com/a/17437740/367544Proguard手册中的此处:https://www.guardsquare.com/en/proguard/manual/troubleshooting#notkept但手册(或帖子)并未解释此配置设置的工作原理或原因。我认为此配置值会保留在您的应用程序中定义的任何注释。我在这里强调defined这个词是因为我想将它与used注释的地方进行比较。因此,如果我在我的代码中定义了一个注释,如public@interfaceMy
我在Scala中构建了一个(命令行)应用程序,我想将其作为独立的JAR进行分发。我正在用sbt构建它:importsbt._classProject(info:ProjectInfo)extendsDefaultProject(info)withProguardProject{overridedefparallelExecution=trueoverridedefmainClass:Option[String]=//whateveroverridedeflibraryDependencies=Set(//whatever)++super.libraryDependenciesoverr
假设我有结构:importsome.other.Clazz;publicclassA{Clazzclazz;Bb;publicclassB{Cc;//...}publicstaticclassC{//...}}是否有一些漂亮的proguard技巧可以让我递归地保留我的类A使用的所有类?那么B、C和Clazz内部引用的所有类也是如此吗? 最佳答案 我不认为你可以仅使用混淆器来做到这一点,我真的怀疑是否有一个简单的解决方案(你可以使用插件)使用mvn\gradle\sbt\whatever来解决这个问题。如果您可以在构建期间运行代码或s
我能够在Android上构建libjingle库并构建AppRTCDemo应用程序。我能够连接到同行并成功共享音频和视频。现在我想扩展它来发送数据(比如文本“HelloWorld”)。我想将DataChannel集成到其中,以便我也可以通过它发送数据。我有几个问题:是否可以将DataChannel与原生webrtc一起使用?我的意思是我正在尝试做的事情是否受支持?是否有任何示例应用程序或示例可以为我解决这个问题?期待您的支持! 最佳答案 是的,它受支持。有关确切接口(interface)的更多信息,请查看/talk/app/webr
我正在尝试使用Proguard混淆我的Java项目的代码。该项目已在Intellij上创建,并使用Gradle2.2.1配置。我工作的电脑上有代理,所以Intellij无法上网。我花了几个小时来寻找一个简单的例子来混淆我的代码。我试过:taskproguardTask(type:proguard.gradle.ProGuardTask){println"ha"}taskproguardTask(type:proguard.gradle.ProGuardTask)我每次都遇到异常:FAILURE:Buildfailedwithanexception.*Whatwentwrong:Exec
在重命名/重新打包类时,Proguard似乎没有尝试避免与库JAR中的类发生命名冲突。这是正确的,还是我没有正确配置它?我正在混淆使用最新GoogleAdMobSDK的Android应用程序。以前我使用旧的AdMobSDK没有问题。新的SDKJAR文件包含一些经过混淆处理的类。其中一个类是默认/未命名包中的a.class。当我混淆我的应用程序时,Proguard将我的一个类重命名/重新打包为未命名包中的a.class,尽管已将AdMobJAR作为库JAR读取(因此它应该知道这将导致碰撞)。不出所料,当dx工具试图将这两个同名类合并到一个.dex文件中时,我的构建失败了。作为一种解决方法
在我的jar文件上使用ProGuard中断了我对class.getResource("")的调用。我在ProGuard手册中看到您需要指定-keepdirectoriesmypackage(manuallink)。但是,我指定了-keepdirectories选项,但它似乎不起作用。我认为我的ProGuard配置有问题。我也看过thisrelatedquestion,但我无法让-keeppackagenames正常工作。在我的代码中,我有类似于以下内容的内容。packagecom.example.mypackage;publicclassMyClass{publicstaticvoid