maoabc/nmmp

处理AAR 警告:Type `java.util.HashMap` was not found 这个是否是正常的

gflkdns opened this issue · 5 comments

基本所有android的类库都会报警告:

Warning in /Users/XXX/AndroidStudioProjects/XXX/build/outputs/aar/build/.dx_temp/classes.jar:އީާޖިެށޮ/ބވޏޟާވޤޞޖ$ބވޏޟާވޤޞޖ.class:
Type `java.util.HashMap` was not found, it is required for default or static interface methods desugaring of `އީާޖިެށޮ.ބވޏޟާވޤޞޖ$ބވޏޟާވޤޞޖ`

使用命令:

export ANDROID_SDK_HOME=/Users/XXX/Library/Android/sdk
export ANDROID_NDK_HOME=$ANDROID_SDK_HOME/ndk/22.1.7171670
export CMAKE_PATH=$ANDROID_SDK_HOME/cmake/3.22.1/
java -jar vm-protect-2023-07-08-0942.jar aar $aar_path convertRules.txt mapping.txt
maoabc commented

这是d8的报错,d8命令时没有指定android.jar, 不过一般情况没什么问题。如果有错,就得加上--lib xx.jar指定一些lib。d8调用在classesJarToDexJar方法里(

private File classesJarToDexJar() throws IOException {
),有注释怎么加参数

maoabc commented

如果使用了java8的语法糖,一般还需要再指定android.jar

好的 感谢解惑

AAR 加固遇到这种kotlin语法就会崩溃 [ object : ],正在研究问题原因,怀疑导dex2jar或者是R8导致的

  val callback = object : PermissionUtils.SimpleCallback {
                    override fun onGranted() {
                        
                    }

                    override fun onDenied() {

                    }

                }
maoabc commented

这个看着只是新建一个回调对象,应该不是这句代码产生的。后面回调接口实现会生成匿名内部类,如果它有default方法可能会有问题。