ZerotierFix icon indicating copy to clipboard operation
ZerotierFix copied to clipboard

Fails adding custom planet on x86 Android 5

Open dm1sh opened this issue 4 months ago • 1 comments

App crashes when try to add custom planet file both via file manager and URL. Logs indicate that org.apache.commons.io.file has no class definition for FileVisitor for x86 platform:

08-10 01:48:38.623 I/art     ( 3835): Rejecting re-init on previously-failed class java.lang.Class<org.apache.commons.io.file.PathVisitor>: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/nio/file/FileVisitor;
08-10 01:48:38.623 I/art     ( 3835):   at void org.apache.commons.io.FileUtils.copyInputStreamToFile(java.io.InputStream, java.io.File) (FileUtils.java:952)
08-10 01:48:38.623 I/art     ( 3835):   at void net.kaaass.zerotierfix.ui.PrefsFragment.lambda$onAttach$0$net-kaaass-zerotierfix-ui-PrefsFragment(androidx.activity.result.ActivityResult) (PrefsFragment.java:86)
08-10 01:48:38.623 I/art     ( 3835):   at void net.kaaass.zerotierfix.ui.PrefsFragment$$ExternalSyntheticLambda6.onActivityResult(java.lang.Object) (D8$$SyntheticClass:-1)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.activity.result.ActivityResultRegistry$1.onStateChanged(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle$Event) (ActivityResultRegistry.java:149)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle$Event) (LifecycleRegistry.java:360)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry.forwardPass(androidx.lifecycle.LifecycleOwner) (LifecycleRegistry.java:271)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry.sync() (LifecycleRegistry.java:313)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry.moveToState(androidx.lifecycle.Lifecycle$State) (LifecycleRegistry.java:151)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(androidx.lifecycle.Lifecycle$Event) (LifecycleRegistry.java:134)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.fragment.app.Fragment.performStart() (Fragment.java:3167)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.fragment.app.FragmentStateManager.start() (FragmentStateManager.java:588)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.fragment.app.FragmentStateManager.moveToExpectedState() (FragmentStateManager.java:279)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.fragment.app.FragmentStore.moveToExpectedState() (FragmentStore.java:113)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.fragment.app.FragmentManager.moveToState(int, boolean) (FragmentManager.java:1433)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.fragment.app.FragmentManager.dispatchStateChange(int) (FragmentManager.java:2977)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.fragment.app.FragmentManager.dispatchStart() (FragmentManager.java:2902)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.fragment.app.FragmentController.dispatchStart() (FragmentController.java:274)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.fragment.app.FragmentActivity.onStart() (FragmentActivity.java:359)
08-10 01:48:38.623 I/art     ( 3835):   at void androidx.appcompat.app.AppCompatActivity.onStart() (AppCompatActivity.java:251)
08-10 01:48:38.623 I/art     ( 3835):   at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1249)
08-10 01:48:38.623 I/art     ( 3835):   at void android.app.Activity.performStart() (Activity.java:6701)
08-10 01:48:38.623 I/art     ( 3835):   at void android.app.Activity.performRestart() (Activity.java:6775)
08-10 01:48:38.623 I/art     ( 3835):   at void android.app.Activity.performResume() (Activity.java:6780)
08-10 01:48:38.623 I/art     ( 3835):   at android.app.ActivityThread$ActivityClientRecord android.app.ActivityThread.performResumeActivity(android.os.IBinder, boolean, java.lang.String) (ActivityThread.java:3431)
08-10 01:48:38.623 I/art     ( 3835):   at void android.app.ActivityThread.handleResumeActivity(android.os.IBinder, boolean, boolean, boolean, int, java.lang.String) (ActivityThread.java:3494)
08-10 01:48:38.623 I/art     ( 3835):   at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1546)
08-10 01:48:38.623 I/art     ( 3835):   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
08-10 01:48:38.623 I/art     ( 3835):   at void android.os.Looper.loop() (Looper.java:154)
08-10 01:48:38.623 I/art     ( 3835):   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6186)
08-10 01:48:38.623 I/art     ( 3835):   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
08-10 01:48:38.623 I/art     ( 3835):   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:889)
08-10 01:48:38.623 I/art     ( 3835):   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:779)
08-10 01:48:38.624 I/art     ( 3835): Caused by: java.lang.ClassNotFoundException: Didn't find class "java.nio.file.FileVisitor" on path: DexPathList[[zip file "/data/app/net.kaaass.zerotierfix-1/base.apk"],nativeLibraryDirectories=[/data/app/net.kaaass.zerotierfix-1/lib/x86, /data/app/net.kaaass.zerotierfix-1/base.apk!/lib/x86, /system/lib, /vendor/lib]]
08-10 01:48:38.624 I/art     ( 3835):   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
08-10 01:48:38.624 I/art     ( 3835):   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
08-10 01:48:38.624 I/art     ( 3835):   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
08-10 01:48:38.624 I/art     ( 3835):   at void org.apache.commons.io.FileUtils.copyInputStreamToFile(java.io.InputStream, java.io.File) (FileUtils.java:952)
08-10 01:48:38.624 I/art     ( 3835):   at void net.kaaass.zerotierfix.ui.PrefsFragment.lambda$onAttach$0$net-kaaass-zerotierfix-ui-PrefsFragment(androidx.activity.result.ActivityResult) (PrefsFragment.java:86)
08-10 01:48:38.624 I/art     ( 3835):   at void net.kaaass.zerotierfix.ui.PrefsFragment$$ExternalSyntheticLambda6.onActivityResult(java.lang.Object) (D8$$SyntheticClass:-1)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.activity.result.ActivityResultRegistry$1.onStateChanged(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle$Event) (ActivityResultRegistry.java:149)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle$Event) (LifecycleRegistry.java:360)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry.forwardPass(androidx.lifecycle.LifecycleOwner) (LifecycleRegistry.java:271)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry.sync() (LifecycleRegistry.java:313)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry.moveToState(androidx.lifecycle.Lifecycle$State) (LifecycleRegistry.java:151)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(androidx.lifecycle.Lifecycle$Event) (LifecycleRegistry.java:134)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.fragment.app.Fragment.performStart() (Fragment.java:3167)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.fragment.app.FragmentStateManager.start() (FragmentStateManager.java:588)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.fragment.app.FragmentStateManager.moveToExpectedState() (FragmentStateManager.java:279)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.fragment.app.FragmentStore.moveToExpectedState() (FragmentStore.java:113)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.fragment.app.FragmentManager.moveToState(int, boolean) (FragmentManager.java:1433)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.fragment.app.FragmentManager.dispatchStateChange(int) (FragmentManager.java:2977)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.fragment.app.FragmentManager.dispatchStart() (FragmentManager.java:2902)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.fragment.app.FragmentController.dispatchStart() (FragmentController.java:274)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.fragment.app.FragmentActivity.onStart() (FragmentActivity.java:359)
08-10 01:48:38.624 I/art     ( 3835):   at void androidx.appcompat.app.AppCompatActivity.onStart() (AppCompatActivity.java:251)
08-10 01:48:38.624 I/art     ( 3835):   at void android.app.Instrumentation.callActivityOnStart(android.app.Activity) (Instrumentation.java:1249)
08-10 01:48:38.624 I/art     ( 3835):   at void android.app.Activity.performStart() (Activity.java:6701)
08-10 01:48:38.624 I/art     ( 3835):   at void android.app.Activity.performRestart() (Activity.java:6775)
08-10 01:48:38.624 I/art     ( 3835):   at void android.app.Activity.performResume() (Activity.java:6780)
08-10 01:48:38.624 I/art     ( 3835):   at android.app.ActivityThread$ActivityClientRecord android.app.ActivityThread.performResumeActivity(android.os.IBinder, boolean, java.lang.String) (ActivityThread.java:3431)
08-10 01:48:38.624 I/art     ( 3835):   at void android.app.ActivityThread.handleResumeActivity(android.os.IBinder, boolean, boolean, boolean, int, java.lang.String) (ActivityThread.java:3494)
08-10 01:48:38.624 I/art     ( 3835):   at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1546)
08-10 01:48:38.624 I/art     ( 3835):   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
08-10 01:48:38.624 I/art     ( 3835):   at void android.os.Looper.loop() (Looper.java:154)
08-10 01:48:38.624 I/art     ( 3835):   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6186)
08-10 01:48:38.624 I/art     ( 3835):   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
08-10 01:48:38.624 I/art     ( 3835):   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:889)
08-10 01:48:38.624 I/art     ( 3835):   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:779)

Hope it is possible to fix this without too much work

dm1sh avatar Aug 11 '25 02:08 dm1sh

Thanks for reporting. Seems the same as #79.

Could you try the version in https://github.com/kaaass/ZerotierFix/issues/79#issuecomment-1933710406?

kaaass avatar Aug 11 '25 02:08 kaaass