APKEditor icon indicating copy to clipboard operation
APKEditor copied to clipboard

How can I repackage after renaming the class

Open kirer opened this issue 1 year ago • 1 comments

When I rename the class and package it, it prompts that I cannot find the Application class

val apk = ApkModule.loadApkFile(logger, inFile)
val directory = DexDirectory.fromZip(apk.zipEntryMap)
directory.rename(TypeKey.parse("xxx"), TypeKey.parse("xxxxx))
val builder = ApkBuilder(apk, directory)
builder.apply()
directory.refresh()
directory.shrink()
directory.merge()
directory.refreshFull()
directory.save()
apk.writeApk(outFile)  

kirer avatar Sep 07 '24 19:09 kirer

Because you renamed application class on dex and you didn't rename on manifest

<application android:name="com.OldClass">

To rename application class:

        AndroidManifest androidManifest = apkModule.getAndroidManifest();
        androidManifest.setApplicationClassName("com.NewClass");

Tip: If you are going to make bulk class rename use RenameTypes

REAndroid avatar Sep 08 '24 12:09 REAndroid