Skip to content

1.compat android 13 14 #1191

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: vxp
Choose a base branch
from

Conversation

xiaofanqingzjj
Copy link

Description

What does this PR do?

  • 适配Android 13, 14的版本
  • 修复VPackageManagerService.generatePackageInfo()返回的PackageInfo是一个空对象的bug

Type of change

  • New feature (non-breaking change which adds functionality)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

@nitinprajwal
Copy link

can make it compatible for android 15 also?

@luckyabsoluter
Copy link

luckyabsoluter commented Aug 4, 2025

It runs on the Android Studio emulator(Android 13), but I haven't tested the actual functionality yet.

EDIT
I was able to run it on the Android Studio emulator and clone an app inside it, but the cloned app doesn’t open and stays in an infinite loading state. It seems it’s not working.

EDIT2
After fixing the long to int conversion issue, I also tested it on my actual Android 13 (arm64) smartphone, but it cannot run due to a "taobao related class not found" error (com/taobao/android/dexposed/DexposedBridge).

Also, please refer to the Android emulator information below.
x86_64 Emulator Compatibility Issue - Infinite Loading When Running Multi-Apps
#1203

@luckyabsoluter
Copy link

luckyabsoluter commented Aug 5, 2025

I've found that the DataUtil.safeToInt() method should be applied more broadly. For example, a error occurs on the following line:

To fix this and other similar assignment casts throughout the project, we can use a simple regex find-and-replace.

Find

= \(int\) args(.+);

Replace

= DataUtil.safeToInt($1);

@luckyabsoluter
Copy link

luckyabsoluter commented Aug 5, 2025

I would like to evaluate the 'me.weishu:epic:0.11.1' being used here. Please refer to the following link:
https://mvnrepository.com/artifact/me.weishu/epic
Version 1.0.0 was released before 0.11.1, and it appears to support SDK29 (Q, Android 10), which is lower compared to 0.11.1 that supports up to SDK30 (R, Android 11).

The same package can be found on the following GitHub repository, which has advanced to version 0.11.2:
https://github.com/tiann/epic
Despite the README stating support up to Android 11, there is code related to SDK31 (S, Android 12):
https://github.com/tiann/epic/blob/c67d0d3e3769c19119465784a579c659dd88c4ce/library/src/main/java/me/weishu/epic/art/method/Offset.java#L124

It's not yet clear whether this code causes issues, and we should potentially consider the Android support versions of the dependencies.

@luckyabsoluter
Copy link

luckyabsoluter commented Aug 5, 2025

Issue (Solved)

This error occurs simultaneously on both real Android 13 and x86_64 emulator, so it should be possible to debug through the emulator.

The class com.taobao.android.dexposed.DexposedBridge cannot be found, but I can confirm that de.robv.android.xposed.DexposedBridge exists.

https://github.com/tiann/epic/blob/c67d0d3e3769c19119465784a579c659dd88c4ce/library/src/main/java/de/robv/android/xposed/DexposedBridge.java#L47

This could be an issue that occurs during the reflection process.

FATAL EXCEPTION: main
Process: de.robv.android.xposed.installer, PID: 24673
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/taobao/android/dexposed/DexposedBridge;
	at me.weishu.exposed.ExposedBridge.initForXposedInstaller(ExposedBridge.java:222)
	at me.weishu.exposed.ExposedBridge.initOnce(ExposedBridge.java:84)
	at com.lody.virtual.client.VClientImpl.bindApplicationNoCheck(VClientImpl.java:355)
	at com.lody.virtual.client.VClientImpl.bindApplication(VClientImpl.java:221)
	at com.lody.virtual.client.VClientImpl.bindApplicationForActivity(VClientImpl.java:216)
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:236)
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:233)
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:206)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2574)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8762)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.taobao.android.dexposed.DexposedBridge" on path: DexPathList[[zip file "/data/app/~~K9T22B4ew9BlefZGXp2MZg==/io.va.exposed64-nbqxF-A9XXz1UFCLcQqs4A==/base.apk"],nativeLibraryDirectories=[/data/app/~~K9T22B4ew9BlefZGXp2MZg==/io.va.exposed64-nbqxF-A9XXz1UFCLcQqs4A==/lib/arm64, /system/fake-libs64, /data/app/~~K9T22B4ew9BlefZGXp2MZg==/io.va.exposed64-nbqxF-A9XXz1UFCLcQqs4A==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
	... 19 more
FATAL EXCEPTION: main
Process: com.example.app, PID: 13881
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/taobao/android/dexposed/DexposedBridge;
	at me.weishu.exposed.ExposedBridge.loadModule(ExposedBridge.java:121)
	at com.lody.virtual.client.VClientImpl.bindApplicationNoCheck(VClientImpl.java:359)
	at com.lody.virtual.client.VClientImpl.bindApplication(VClientImpl.java:221)
	at com.lody.virtual.client.VClientImpl.bindApplicationForActivity(VClientImpl.java:216)
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:236)
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:233)
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:206)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2574)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8762)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.taobao.android.dexposed.DexposedBridge" on path: DexPathList[[zip file "/data/app/~~8d7AL_vkLufbJdH_0LeYcg==/io.va.exposed64-yHveseMSELDuDU9xz0nMRA==/base.apk"],nativeLibraryDirectories=[/data/app/~~8d7AL_vkLufbJdH_0LeYcg==/io.va.exposed64-yHveseMSELDuDU9xz0nMRA==/lib/arm64, /system/fake-libs64, /data/app/~~8d7AL_vkLufbJdH_0LeYcg==/io.va.exposed64-yHveseMSELDuDU9xz0nMRA==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
	... 18 more

Solution

I apologize for the confusion. The taobao issue was related to the dependency version.

api("me.weishu.exposed:exposed-core:0.8.1") {

I replaced the above code with the below code to work around compilation issues:

api('com.github.android-hacker:exposed:0.3.6') {

Although the issue has been resolved in the latest code from https://github.com/android-hacker/exposed, version 0.3.6 is very old and was the latest tagged release available.

The root cause was that my existing environment had errors with jcenter, so I used com.github.android-hacker:exposed via jitpack.io instead of me.weishu.exposed:exposed-core.

I have now found a way to still use jcenter and resolved the issue. I will continue to report on problems with using me.weishu.exposed:exposed-core:0.8.1.

@luckyabsoluter
Copy link

FATAL EXCEPTION: main
Process: de.robv.android.xposed.installer, PID: 7373
de.robv.android.xposed.XposedHelpers$InvocationTargetError: java.lang.NoClassDefFoundError: me.weishu.epic.art.method.Offset
	at de.robv.android.xposed.XposedHelpers.callStaticMethod(XposedHelpers.java:1316)
	at de.robv.android.xposed.XposedBridge.hookMethod(XposedBridge.java:208)
	at me.weishu.exposed.ExposedBridge.initForXposedInstaller(ExposedBridge.java:484)
	at me.weishu.exposed.ExposedBridge.initOnce(ExposedBridge.java:120)
	at com.lody.virtual.client.VClientImpl.bindApplicationNoCheck(VClientImpl.java:355)
	at com.lody.virtual.client.VClientImpl.bindApplication(VClientImpl.java:221)
	at com.lody.virtual.client.VClientImpl.bindApplicationForActivity(VClientImpl.java:216)
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:236)
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:233)
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:206)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:138)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7924)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.lang.NoClassDefFoundError: me.weishu.epic.art.method.Offset
	at me.weishu.epic.art.method.ArtMethod.getEntryPointFromQuickCompiledCode(ArtMethod.java:404)
	at me.weishu.epic.art.Epic.hookMethod(Epic.java:105)
	at me.weishu.epic.art.Epic.hookMethod(Epic.java:75)
	at de.robv.android.xposed.DexposedBridge.hookMethod(DexposedBridge.java:124)
	at me.weishu.exposed.ExposedBridge.hookMethod(ExposedBridge.java:342)
	at java.lang.reflect.Method.invoke(Native Method)
	at de.robv.android.xposed.XposedHelpers.callStaticMethod(XposedHelpers.java:1308)
	at de.robv.android.xposed.XposedBridge.hookMethod(XposedBridge.java:208) 
	at me.weishu.exposed.ExposedBridge.initForXposedInstaller(ExposedBridge.java:484) 
	at me.weishu.exposed.ExposedBridge.initOnce(ExposedBridge.java:120) 
	at com.lody.virtual.client.VClientImpl.bindApplicationNoCheck(VClientImpl.java:355) 
	at com.lody.virtual.client.VClientImpl.bindApplication(VClientImpl.java:221) 
	at com.lody.virtual.client.VClientImpl.bindApplicationForActivity(VClientImpl.java:216) 
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:236) 
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:233) 
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:206) 
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) 
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:138) 
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307) 
	at android.os.Handler.dispatchMessage(Handler.java:106) 
	at android.os.Looper.loopOnce(Looper.java:201) 
	at android.os.Looper.loop(Looper.java:288) 
	at android.app.ActivityThread.main(ActivityThread.java:7924) 
	at java.lang.reflect.Method.invoke(Native Method) 
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 
Caused by: java.lang.ExceptionInInitializerError
	at me.weishu.epic.art.method.ArtMethod.getEntryPointFromQuickCompiledCode(ArtMethod.java:404)
	at me.weishu.epic.art.Epic.hookMethod(Epic.java:105)
	at me.weishu.epic.art.Epic.hookMethod(Epic.java:80)
	at de.robv.android.xposed.DexposedBridge.hookMethod(DexposedBridge.java:122)
	at me.weishu.exposed.ExposedBridge.hookMethod(ExposedBridge.java:342)
	at java.lang.reflect.Method.invoke(Native Method)
	at de.robv.android.xposed.XposedHelpers.callStaticMethod(XposedHelpers.java:1308)
	at de.robv.android.xposed.XposedBridge.hookMethod(XposedBridge.java:208)
	at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:187)
	at me.weishu.exposed.ExposedBridge.initForXposedInstaller(ExposedBridge.java:445)
	at me.weishu.exposed.ExposedBridge.initOnce(ExposedBridge.java:120) 
	at com.lody.virtual.client.VClientImpl.bindApplicationNoCheck(VClientImpl.java:355) 
	at com.lody.virtual.client.VClientImpl.bindApplication(VClientImpl.java:221) 
	at com.lody.virtual.client.VClientImpl.bindApplicationForActivity(VClientImpl.java:216) 
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:236) 
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:233) 
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:206) 
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) 
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:138) 
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307) 
	at android.os.Handler.dispatchMessage(Handler.java:106) 
	at android.os.Looper.loopOnce(Looper.java:201) 
	at android.os.Looper.loop(Looper.java:288) 
	at android.app.ActivityThread.main(ActivityThread.java:7924) 
	at java.lang.reflect.Method.invoke(Native Method) 
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 
Caused by: java.lang.RuntimeException: API LEVEL: 33 is not supported now : (
	at me.weishu.epic.art.method.Offset.initFields(Offset.java:165)
	at me.weishu.epic.art.method.Offset.<clinit>(Offset.java:53)
	at me.weishu.epic.art.method.ArtMethod.getEntryPointFromQuickCompiledCode(ArtMethod.java:404) 
	at me.weishu.epic.art.Epic.hookMethod(Epic.java:105) 
	at me.weishu.epic.art.Epic.hookMethod(Epic.java:80) 
	at de.robv.android.xposed.DexposedBridge.hookMethod(DexposedBridge.java:122) 
	at me.weishu.exposed.ExposedBridge.hookMethod(ExposedBridge.java:342) 
	at java.lang.reflect.Method.invoke(Native Method) 
	at de.robv.android.xposed.XposedHelpers.callStaticMethod(XposedHelpers.java:1308) 
	at de.robv.android.xposed.XposedBridge.hookMethod(XposedBridge.java:208) 
	at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:187) 
	at me.weishu.exposed.ExposedBridge.initForXposedInstaller(ExposedBridge.java:445) 
	at me.weishu.exposed.ExposedBridge.initOnce(ExposedBridge.java:120) 
	at com.lody.virtual.client.VClientImpl.bindApplicationNoCheck(VClientImpl.java:355) 
	at com.lody.virtual.client.VClientImpl.bindApplication(VClientImpl.java:221) 
	at com.lody.virtual.client.VClientImpl.bindApplicationForActivity(VClientImpl.java:216) 
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:236) 
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:233) 
	at android.app.TransactionHandlerProxy.handleLaunchActivity(TransactionHandlerProxy.java:206) 
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) 
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:138) 
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307) 
	at android.os.Handler.dispatchMessage(Handler.java:106) 
	at android.os.Looper.loopOnce(Looper.java:201) 
	at android.os.Looper.loop(Looper.java:288) 
	at android.app.ActivityThread.main(ActivityThread.java:7924) 
	at java.lang.reflect.Method.invoke(Native Method) 
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 

Here, de.robv.android.xposed.XposedHelpers$InvocationTargetError: java.lang.NoClassDefFoundError: me.weishu.epic.art.method.Offset appears to be a class loading failure, but this is a misleading error. The real issue is shown below: Caused by: java.lang.RuntimeException: API LEVEL: 33 is not supported now : (. This indicates that API level 33 is not supported, causing an initialization error that makes it appear as if the class is missing.

This is the support issue I mentioned earlier regarding 'me.weishu:epic:0.11.1' https://mvnrepository.com/artifact/me.weishu/epic and 'com.github.tiann:epic:0.11.2' https://github.com/tiann/epic.

To summarize:

  • 'me.weishu:epic:0.11.1' supports up to Android 11 (R, API 30)
  • 'com.github.tiann:epic:0.11.2' supports up to Android 12 (S, API 31)

Since we likely cannot wait for tiann to accept PRs, it appears we would need to work through a GitHub fork, then deploy our own repository via jitpack.io to proceed with the work.

To actually achieve Android 13 and 14 support, the above work is necessary, and there may be additional errors even after resolving this issue.

@luckyabsoluter
Copy link

To resolve the issue, I will try applying 'com.github.tiann:epic:0.11.2', and if successful, I will use my forked repository. When I remove 'me.weishu:epic:0.11.1' and try to use 'com.github.tiann:epic:0.11.2', the following error occurs. If you have any knowledge about this issue, please report it.


Looking at the build error, the issue is a duplicate class conflict:

D8: Program type already present: me.weishu.freereflection.BuildConfig

This suggests that when you replaced 'me.weishu:epic:0.11.1' with 'com.github.tiann:epic:0.11.2', there are now duplicate classes being included in the build, specifically me.weishu.freereflection.BuildConfig.


Regarding the duplicate class issue:

The problem likely occurs because:

  1. Different packaging: The two Epic versions (me.weishu:epic:0.11.1 vs com.github.tiann:epic:0.11.2) may include different sets of dependencies or have different dependency scopes.

  2. FreeReflection dependency conflict: The me.weishu.freereflection.BuildConfig suggests that both versions might be pulling in the FreeReflection library, but with conflicting versions or packaging.

Potential solutions:

  1. Check dependency conflicts: Run ./gradlew app:dependencies to see which dependencies are pulling in conflicting classes.

  2. Exclude conflicting dependencies: You might need to exclude the freereflection dependency from one of the libraries:

    implementation('com.github.tiann:epic:0.11.2') {
        exclude group: 'me.weishu', module: 'freereflection'
    }
  3. Clean build: Try ./gradlew clean before building.

  4. Version alignment: Make sure all Weishu-related dependencies use compatible versions.

The issue suggests that the transition from the official Maven repository version to the JitPack GitHub version introduces dependency conflicts that need to be resolved through proper exclusions or version alignment.

$ ./gradlew build

> Configure project :launcher 
The com.google.protobuf plugin was already applied to the project: :launcher and will not be applied again after plugin: android-library

/home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/incremental/mergeAospDebugResources/merged.dir/values-pt-rBR/values-pt-rBR.xml:145: warn: multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?.


> Task :app:processAospDebugManifest 
/home/user/vxp-ori/VirtualXposed/VirtualApp/app/src/main/AndroidManifest.xml:24:9-27:45 Warning:
        meta-data#android.support.VERSION@android:value was tagged at AndroidManifest.xml:24 to replace other declarations but no other declaration present

> Task :lib:compileDebugJavaWithJavac 
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :app:transformDexArchiveWithExternalLibsDexMergerForAospDebug FAILED
D8: Program type already present: me.weishu.freereflection.BuildConfig


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForAospDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/0.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/1.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/2.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/3.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/4.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/5.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/6.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/7.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/8.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/9.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/10.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/11.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/12.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/13.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/14.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/15.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/16.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/17.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/18.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/19.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/20.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/21.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/22.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/23.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/24.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/25.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/26.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/27.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/28.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/29.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/30.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/31.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/32.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/33.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/34.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/35.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/36.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/37.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/38.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/39.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/40.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/41.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/42.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/43.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/44.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/45.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/46.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/47.jar, /home/user/vxp-ori/VirtualXposed/VirtualApp/app/build/intermediates/transforms/dexBuilder/aosp/debug/48.jar
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: me.weishu.freereflection.BuildConfig

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.6/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 11s
57 actionable tasks: 11 executed, 46 up-to-date

@xiaofanqingzjj
Copy link
Author

You can remove this dependency. Just fix the compilation errors within it. This is not necessary.

@luckyabsoluter
Copy link

luckyabsoluter commented Aug 6, 2025

You can remove this dependency. Just fix the compilation errors within it. This is not necessary.

Sorry, I couldn't understand your intention. I analyzed and resolved it as follows:

The original working configuration was:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    api("me.weishu.exposed:exposed-core:0.8.1") {
        exclude group: 'me.weishu', module: 'free_reflection'
        exclude group: 'me.weishu', module: 'epic'
        exclude group: 'me.weishu.exposed', module: 'exposed-xposedapi'
    }
    implementation "me.weishu:free_reflection:3.0.1"
    implementation 'me.weishu:epic:0.11.1'
    implementation "me.weishu.exposed:exposed-xposedapi:0.4.6"
}

When I changed to use 'com.github.tiann:epic:0.11.2', it caused a conflict error:

// implementation 'me.weishu:epic:0.11.1'
implementation 'com.github.tiann:epic:0.11.2'  // This caused BuildConfig conflict

I discovered that 'com.github.tiann:epic:0.11.2' had switched from using me.weishu:free_reflection to com.github.tiann:FreeReflection.

When I removed all FreeReflection dependencies:

// implementation "me.weishu:free_reflection:3.0.1"
// implementation 'com.github.tiann:FreeReflection:3.2.2'
implementation 'com.github.tiann:epic:0.11.2'

The compilation succeeded, but libepic.so was not generated, causing runtime errors.

Finally, I used the compatible combination:

implementation 'com.github.tiann:FreeReflection:3.2.2'
implementation 'com.github.tiann:epic:0.11.2'

This resolved both the compilation errors and ensured that libepic.so was properly generated.

@xiaofanqingzjj
Copy link
Author

Remove all the dependencies?

@luckyabsoluter
Copy link

Let me clarify what I meant:

By "When I removed all FreeReflection dependencies," I meant I only removed the active me.weishu:free_reflection:3.0.1 dependency. The com.github.tiann:FreeReflection:3.2.2 line was already commented out from the beginning.

So the configuration was:

// implementation "me.weishu:free_reflection:3.0.1"  // <- REMOVED this line
// implementation 'com.github.tiann:FreeReflection:3.2.2'  // <- This was already commented
implementation 'com.github.tiann:epic:0.11.2'

I didn't remove ALL dependencies - that would obviously cause compilation errors. Are you suggesting dependencies { } (empty dependencies block)? That would definitely cause compilation errors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants