gpt4 book ai didi

java - 将 getResource 与 ProGuard 一起使用会导致空结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:53 24 4
gpt4 key购买 nike

在我的 jar 文件上使用 ProGuard 中断了我对 class.getResource("") 的调用。我在 ProGuard 手册中看到您需要指定 -keepdirectories mypackage ( manual link )。但是,我指定了 -keepdirectories 选项,但它似乎不起作用。我认为我的 ProGuard 配置有问题。我也看过this related question ,但我无法让 -keeppackagenames 正常工作。

在我的代码中,我有类似于以下内容的内容。

package com.example.mypackage;
public class MyClass{
public static void main(String [] args){
//url is always returned as null
URL url = MyClass.class.getResource("");
//do additional stuff including retrieving manifest file
}
}

混淆器配置

-injars ...
-outjars ...
-libraryjars ...

-dontoptimize
-keepattributes SourceFile,LineNumber,Table,LocalVariable*Table,*Annotation*
-renamesourcefileattribute SourceFile

-repackageclasses
-overloadaggressively

-keep public class com.example.mypackage.MyClass{
public static void main(java.lang.String[]);
}
-keepdirectories com.example.mypackage,com.example.mypackage.MyClass
-keeppackagenames com.example.mypackage,com.example.mypackage.MyClass

最佳答案

ProGuard 期望包名中有点,文件名和目录名中有斜杠:

-keeppackagenames com.example.mypackage
-keepdirectories com/example/mypackage

关于java - 将 getResource 与 ProGuard 一起使用会导致空结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17111743/

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