b3er / idea-archive-browser

IntelliJ IDEA plugin that allows you to browse archives like folders is IDEA.
Apache License 2.0
40 stars 8 forks source link

Does not work on Apple Silicon #26

Closed ruurd closed 2 years ago

ruurd commented 3 years ago

Does not work on Apple Silicon. Plugin cannot load native extension for 7zip.

java.lang.ExceptionInInitializerError at com.github.b3er.idea.plugins.arc.browser.base.sevenzip.SevenZipPsiFileNode.getChildrenImpl(SevenZipPsiFileNode.kt:15) at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.doGetChildren(AbstractPsiBasedNode.java:87) at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:127) at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:116) at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.getChildren(AbstractPsiBasedNode.java:71) at com.intellij.ide.util.treeView.AbstractTreeStructureBase.getChildElements(AbstractTreeStructureBase.java:34) at com.intellij.ui.tree.StructureTreeModel.getValidChildren(StructureTreeModel.java:382) at com.intellij.ui.tree.StructureTreeModel.validateChildren(StructureTreeModel.java:298) at com.intellij.ui.tree.StructureTreeModel$Node.isLeaf(StructureTreeModel.java:558) at com.intellij.ui.tree.StructureTreeModel.isLeaf(StructureTreeModel.java:334) at com.intellij.ui.tree.LeafState.get(LeafState.java:64) at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.load(AsyncTreeModel.java:590) at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.getNode(AsyncTreeModel.java:563) at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:456) at com.intellij.ui.tree.AsyncTreeModel$Command.get(AsyncTreeModel.java:422) at com.intellij.util.concurrency.Invoker$Task.run(Invoker.java:316) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1137) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:76) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:152) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:113) at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:59) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:178) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:165) at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:59) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:110) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:76) at com.intellij.util.concurrency.Invoker.invokeSafely(Invoker.java:205) at com.intellij.util.concurrency.Invoker.lambda$offerSafely$0(Invoker.java:183) at com.intellij.util.concurrency.Invoker$Background.lambda$offer$0(Invoker.java:541) at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:216) at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27) at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195) at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:208) at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:184) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: net.sf.sevenzipjbinding.SevenZipNativeInitializationException: Error loading SevenZipJBinding native library into JVM: Can't find suited platform for os.arch=aarch64, os.name=Mac... Available list of platforms: Linux-amd64, Linux-i386, Mac-x86_64, Windows-amd64, Windows-x86 [You may also try different SevenZipJBinding initialization methods 'net.sf.sevenzipjbinding.SevenZip.init*()' in order to solve this problem] at net.sf.sevenzipjbinding.SevenZip.throwInitException(SevenZip.java:825) at net.sf.sevenzipjbinding.SevenZip.throwInitException(SevenZip.java:820) at net.sf.sevenzipjbinding.SevenZip.getPlatformBestMatch(SevenZip.java:895) at net.sf.sevenzipjbinding.SevenZip.determineAndSetUsedPlatform(SevenZip.java:466) at net.sf.sevenzipjbinding.SevenZip.initSevenZipFromPlatformJARIntern(SevenZip.java:451) at net.sf.sevenzipjbinding.SevenZip.initSevenZipFromPlatformJAR(SevenZip.java:366) at com.github.b3er.idea.plugins.arc.browser.base.sevenzip.SevenZipArchiveFileSystem.<clinit>(SevenZipArchiveFileSystem.kt:25) ... 44 more

ruurd commented 3 years ago

I've been spelunking in this plugin and it turns out you're using a 7zip binary that does not support aarch64. Please phase that out and use a Java only ZIP library

b3er commented 2 years ago

Need tests on version 0.32, prolly should be fixed (i don't have any silicon devices)

joshiste commented 2 years ago

@b3er 0.32 works for me on my M1X. I think issue can be closed.

b3er commented 2 years ago

Great! Thanks!