Java Android Studio无法在OpenSUSE上启动(打开的文件太多)

Java Android Studio无法在OpenSUSE上启动(打开的文件太多),java,android,linux,android-studio,opensuse,Java,Android,Linux,Android Studio,Opensuse,我已经有一段时间没有在StackOverflow上发表文章了,所以如果我把它放在了错误的区域,请原谅,但问题是: 我最近为我相对较新安装的OpenSUSE系统下载了Android Studio,安装了openjdk devel,每当我尝试启动Studio.sh时,启动屏幕就会出现,大约70%通过加载完成,然后向控制台发送垃圾邮件: [7146]错误-j.util.io.ResizeableMappedFile-/home/user/.AndroidStudio1.3/system/caches

我已经有一段时间没有在StackOverflow上发表文章了,所以如果我把它放在了错误的区域,请原谅,但问题是:

我最近为我相对较新安装的OpenSUSE系统下载了Android Studio,安装了openjdk devel,每当我尝试启动Studio.sh时,启动屏幕就会出现,大约70%通过加载完成,然后向控制台发送垃圾邮件:

[7146]错误-j.util.io.ResizeableMappedFile-/home/user/.AndroidStudio1.3/system/caches/names.dat.len打开的文件过多 java.io.FileNotFoundException:/home/user/.AndroidStudio1.3/system/caches/names.dat.len打开的文件太多 在java.io.FileOutputStream.openNative方法中 在java.io.FileOutputStream.FileOutputStream.java:221 在java.io.FileOutputStream.FileOutputStream.java:171 位于com.intellij.util.io.ResizeableMappedFile$1.executeResizeableMappedFile.java:119 位于com.intellij.util.io.ResizeableMappedFile$1.executeResizeableMappedFile.java:114 在com.intellij.openapi.util.io.FileUtilRt.doIOOperationFileUtilRt.java:700 位于com.intellij.util.io.ResizeableMappedFile.WriteLength ResizeableMappedFile.java:114 位于com.intellij.util.io.ResizeableMappedFile.readLengthResizeableMappedFile.java:164 位于com.intellij.util.io.ResizeableMappedFile.ResizeableMappedFile.java:55 位于com.intellij.util.io.PersistentBTreeEnumerator.PersistentBTreeEnumerator.java:82 位于com.intellij.util.io.PersistentEnumeratoreLegate.PersistentEnumeratoreLegate.java:38 位于com.intellij.util.io.PersistentStringEnumerator.PersistentStringEnumerator.java:53 位于com.intellij.util.io.PersistentStringEnumerator.PersistentStringEnumerator.java:46 位于com.intellij.util.io.PersistentStringEnumerator.PersistentStringEnumerator.java:32 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:244 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:319 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:319 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:319 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:319 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:319 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:319 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:319 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:319 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.initFSRecords.java:319 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords$DbConnection.connectFSRecords.java:160 位于com.intellij.openapi.vfs.newvfs.persistent.FSRecords.connectFSRecords.java:518 位于com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.initComponentPersistentFSImpl.java:89 在com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter$1.getComponentInstanceComponentManagerImpl.java:568 在com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstanceComponentManagerImpl.java:610 位于com.intellij.util.pico.DefaultPicoContainer.getLocalInstanceDefaultPicoContainer.java:245 位于com.intellij.util.pico.DefaultPicoContainer.getComponentInstanceDefaultPicoContainer.java:211 位于org.picocontainer.defaults.BasicComponentParameter.resolveInstanceBasicComponentParameter.java:77 位于org.picocontainer.defaults.ComponentParameter.resolveInstanceComponentParameter.java:114 位于org.picocontainer.defaults.constructorInjectComponentAdapter.GetConstructorArgumentsConstructorInjectComponentAdapter.java:257 位于org.picocontainer.defaults.constructorinjunctioncomponentadapter$1.runconstructorinjunctioncomponentadapter.java:217 位于org.picocontainer.defaults.ThreadLocalCyclicDependencyGuard.observeThreadLocalCyclicDependencyGuard.java:53 位于org.picocontainer.defaults.constructorInjectComponentAdapter.GetComponentInstanceConstructorInjectComponentAdapter.java:248 在com.intellij.util.pico.constructorInjectComponentAdapter.GetComponentInstanceConstructorInjectComponentAdapter.java:58 在com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter$1.getComponentInstanceComponentManagerImpl.java:550 在com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstanceComponentManagerImpl.java:610 位于com.intellij.util.pico.DefaultPicoContainer.getLocalInstanceDefaultPicoContainer.java:245 位于com.intellij.util.pico.DefaultPicoContainer.getComponentInstanceDefaultPicoContainer.java:211 位于org.picocontainer.defaults.CollectionComponentParameter.getArrayInstanceCollectionComponentParameter.java:268 位于org.picocontainer.defaults.CollectionComponentParameter.resolveInstanceCollectionC java:127 位于org.picocontainer.defaults.ComponentParameter.resolveInstanceComponentParameter.java:116 位于org.picocontainer.defaults.constructorInjectComponentAdapter.GetConstructorArgumentsConstructorInjectComponentAdapter.java:257 位于org.picocontainer.defaults.constructorinjunctioncomponentadapter$1.runconstructorinjunctioncomponentadapter.java:217 位于org.picocontainer.defaults.ThreadLocalCyclicDependencyGuard.observeThreadLocalCyclicDependencyGuard.java:53 位于org.picocontainer.defaults.constructorInjectComponentAdapter.GetComponentInstanceConstructorInjectComponentAdapter.java:248 在com.intellij.util.pico.constructorInjectComponentAdapter.GetComponentInstanceConstructorInjectComponentAdapter.java:58 在com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter$1.getComponentInstanceComponentManagerImpl.java:550 在com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstanceComponentManagerImpl.java:610 位于com.intellij.util.pico.DefaultPicoContainer.getLocalInstanceDefaultPicoContainer.java:245 位于com.intellij.util.pico.DefaultPicoContainer.getComponentInstanceDefaultPicoContainer.java:211 在com.intellij.openapi.components.impl.ComponentManagerImpl.getComponentFromContainerComponentManagerImpl.java:168上 位于com.intellij.openapi.application.impl.ApplicationImpl.getComponentFromContainerApplicationImpl.java:533 位于com.intellij.openapi.components.impl.ComponentManagerImpl.getComponentComponentManagerImpl.java:199 位于com.intellij.openapi.components.impl.ComponentManagerImpl.getComponentComponentManagerImpl.java:194 在com.intellij.openapi.vfs.VirtualFileManager.getInstanceVirtualFileManager.java:44 在com.intellij.openapi.vfs.LocalFileSystem$LocalFileSystemHolder.LocalFileSystem.java:40 位于com.intellij.openapi.vfs.LocalFileSystem.getInstanceLocalFileSystem.java:44 在com.intellij.openapi.components.impl.stores.ApplicationStoreImpl$1.beforeFileBasedStorageCreateApplicationStoreImpl.java:85 在com.intellij.openapi.components.impl.stores.StateStorageManagerImpl.createFileStateStorageStateStorageManagerImpl.java:212 位于com.intellij.openapi.components.impl.stores.StateStorageManagerImpl.CreateStateStorageManagerImpl.java:185 位于com.intellij.openapi.components.impl.stores.StateStorageManagerImpl.getStateStorageManagerImpl.java:102 位于com.intellij.openapi.components.impl.stores.ComponentStoreImpl.initPersistentComponentComponentStoreImpl.java:315 位于com.intellij.openapi.components.impl.stores.ComponentStoreImpl.initcomponentstoreimpl.java:75 位于com.intellij.openapi.application.impl.ApplicationImpl.initializeComponentApplicationImpl.java:177 在com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter$1.getComponentInstanceComponentManagerImpl.java:566 在com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstanceComponentManagerImpl.java:610 位于com.intellij.util.pico.DefaultPicoContainer.getLocalInstanceDefaultPicoContainer.java:245 位于com.intellij.util.pico.DefaultPicoContainer.getComponentInstanceDefaultPicoContainer.java:211 在com.intellij.openapi.components.impl.ComponentManagerImpl.createComponentComponentManagerImpl.java:125 位于com.intellij.openapi.application.impl.ApplicationImpl.createComponentApplicationImpl.java:354 位于com.intellij.openapi.components.impl.ComponentManagerImpl.createComponentsComponentManagerImpl.java:116 位于com.intellij.openapi.components.impl.ComponentManagerImpl.initComponentManagerImpl.java:87 在com.intellij.openapi.components.impl.stores.ApplicationStoreImpl.loadApplicationStoreImpl.java:101 位于com.intellij.openapi.application.impl.ApplicationImpl.loadApplicationImpl.java:499 位于com.intellij.openapi.application.impl.ApplicationImpl.loadApplicationImpl.java:481 位于com.intellij.idea.ideaaapplication.runideaaapplication.java:170 com.intellij.idea.mainpl$1$1.runmainpl.java:52 位于java.awt.event.InvocationEvent.dispatchInvocationEvent.java:312 在java.awt.EventQueue.dispatchEventImplEventQueue.java:745 在java.awt.EventQueue.access$300EventQueue.java:103 在java.awt.EventQueue$3.runEventQueue.java:706 在java.awt.EventQueue$3.runEventQueue.java:704 位于java.security.AccessController.doPrivilegeEdNative方法 java.security.ProtectionDomain$1.doIntersectionPrivilegeProtectionDomain.java:76 在java.awt.EventQueue.dispatchEventQueue.java:715 位于com.intellij.ide.IdeEventQueue.dispatcheventidevenqueue.java:362 位于java.awt.EventDispatchThread.pumpOneEventForFiltersEventDispatchThread.java:242 在java.awt.EventDispatchThread.pumpEventsForFilterEventDispatchThread.java:161 在java.awt.EventDispatchThread.PumpeEventsForHierarchyEventDispatchThread.java:150 在java.awt.EventDispatchThread.pumpEventsEventDispatchThread.java:146 在java.awt.EventDispatchThread.pumpEventsEventDispatchThread.java:138 在java.awt.E ventDispatchThread.runEventDispatchThread.java:91 [7150]错误-j.util.io.ResizeableMappedFile-Android Studio 1.3.1构建AI-141.2135290 [7151]错误-j.util.io.ResizeableMappedFile-JDK:1.7.0_85 [7151]错误-j.util.io.ResizeableMappedFile-VM:OpenJDK服务器VM [7151]错误-j.util.io.ResizeableMappedFile-供应商:Oracle公司
[7151]ERROR-j.util.io.ResizeableMappedFile-OS:Linux目前情况就是这样:

$ whoami        //session 1 (256)
corey
$ ulimit -Hn
256
$ ulimit -Sn
256
$ su            //session 2 (65k)
$ whoami
root
$ ulimit -Hn
65535
$ ulimit -Sn
65535
$ su corey      //session 3 (65k)
$ whoami
corey
$ ulimit -Hn
65535
$ ulimit -Sn
65535
$ exit      //session 2(65k)
$ exit     // getting back to login shell: session 1 (256)
$ whoami
corey
$ ulimit -Hn
256
$ ulimit -Sn
256
su命令可以更改登录会话的所有者,即最初通过登录系统创建该会话的用户,而无需所有者首先注销该会话。
因此,当您从root和corey会话注销2次时,您将返回到初始会话,在该会话中,您的旧限制似乎起作用。我不知道如果您正确地重新启动了系统,这会是什么情况,所以我建议您重新登录,意思是明确地退出并在corey下登录,我打赌limits.conf中的新值最终应该应用。

根据,您应该在多个位置调整此类设置。您是否尝试重新启动系统?ulimit-Hn当前显示了什么,您的旧限制还是新限制?我修改了额外的文件并按照链接的说明重新启动,但ulimit-Hn/-Sn始终显示256。即使运行sudobash-culimit-n50000也不能改变它。如果我尝试附加脚本来启动Android Studio可执行文件,它会返回:启动错误:无法检测图形环境好的,将当前的/etc/security/limits.conf添加到问题plz中,并告诉我,如果在重新启动前检查ulimit-a,是否应用了新设置?再加上你的uname-a和cat/proc/version结果plz,也许这真的是特定OpenSUSE发行版中的某种缺陷我在我的OS X和Fedora 18上检查了你的案例-所有这些看起来都很好:编辑了答案。ulimit-a不应用这些设置。我认为limits.conf有问题?听着,我在limits.conf中做了同样的事情,这是重新启动前的输出:这是重新启动后的输出:我不确定你是否在根目录下做了所有这些修改,是吗?也许这是个愚蠢的问题,但我想确定一下,因为在根用户下所做的更改几乎不可能不被应用;我仍然需要对自己进行自我反省,才能适用这些限制。我不知道这是发行版中的一个bug,还是我把事情搞砸了,但我接受这个答案,因为你给了我一个解决这个问题的有效方法。好吧,在阅读完之后——看看bug 2,我开始想也许你的问题出在SELinux策略中——这只是一个猜测,但是试着禁用SELinux,看看发生了什么