【问题标题】:Issue on opening project in Android Studio在 Android Studio 中打开项目的问题
【发布时间】:2023-11-26 08:21:01
【问题描述】:

我尝试在 Android Studio 中打开我朋友的项目。他在 Android Studio 中创建了它。我有包含这个项目的存档。在 Studio 中,我单击 Fie->Open,然后选择带有项目的文件夹。但比我得到错误:

不支持的方法异常 无法在项目“tissapp”中设置 Android 模块:不支持的方法:SourceProvider.getJniDirectories()。 您连接的 Gradle 版本不支持该方法。 要解决此问题,您可以更改/升级您连接到的 Gradle 目标版本。 或者,您可以忽略此异常并从模型中读取其他信息。

我用

依赖{

    classpath 'com.android.tools.build:gradle:0.14.+'
}

当我尝试使用更新的 virsion(例如)时,我在事件日志中出现了新错误

AssertionError: null

详细说明:

null java.lang.AssertionError at com.android.tools.idea.gradle.project.PreSyncChecks.attemptToUpdateGradleVersionInWrapper(PreSyncChecks.java:174) 在 com.android.tools.idea.gradle.project.PreSyncChecks.ensureCorrectGradleSettings(PreSyncChecks.java:72) 在 com.android.tools.idea.gradle.project.PreSyncChecks.canSync(PreSyncChecks.java:53) 在 com.android.tools.idea.gradle.project.GradleProjectImporter.doImport(GradleProjectImporter.java:430) 在 com.android.tools.idea.gradle.project.GradleProjectImporter.doRequestSync(GradleProjectImporter.java:219) 在 com.android.tools.idea.gradle.project.GradleProjectImporter.access$000(GradleProjectImporter.java:77) 在 com.android.tools.idea.gradle.project.GradleProjectImporter$2.run(GradleProjectImporter.java:184) 在 com.intellij.ui.AppUIUtil.invokeLaterIfProjectAlive(AppUIUtil.java:77) 在 com.android.tools.idea.gradle.project.GradleProjectImporter.requestProjectSync(GradleProjectImporter.java:191) 在 com.android.tools.idea.gradle.project.GradleProjectImporter.requestProjectSync(GradleProjectImporter.java:166) 在 com.android.tools.idea.editors.ProjectSyncStatusNotificationProvider$ProjectImportFailedNotificationPanel$1.run(ProjectSyncStatusNotificationProvider.java:104) 在 com.intellij.ui.EditorNotificationPanel$2.hyperlinkActivated(EditorNotificationPanel.java:88) 在 com.intellij.ui.HyperlinkAdapter.hyperlinkUpdate(HyperlinkAdapter.java:28) 在 com.intellij.ui.HyperlinkLabel.fireHyperlinkEvent(HyperlinkLabel.java:172) 在 com.intellij.ui.HyperlinkLabel.processMouseEvent(HyperlinkLabel.java:105) 在 java.awt.Component.processEvent(Component.java:6270) 在 java.awt.Container.processEvent(Container.java:2229) 在 java.awt.Component.dispatchEventImpl(Component.java:4861) 在 java.awt.Container.dispatchEventImpl(Container.java:2287) 在 java.awt.Component.dispatchEvent(Component.java:4687) 在 java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) 在 java.awt.LightweightDispatcher.processMouseEvent(Container.java:4489) 在 java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 在 java.awt.Container.dispatchEventImpl(Container.java:2273) 在 java.awt.Window.dispatchEventImpl(Window.java:2719) 在 java.awt.Component.dispatchEvent(Component.java:4687) 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) 在 java.awt.EventQueue.access$200(EventQueue.java:103) 在 java.awt.EventQueue$3.run(EventQueue.java:694) 在 java.awt.EventQueue$3.run(EventQueue.java:692) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 在 java.awt.EventQueue$4.run(EventQueue.java:708) 在 java.awt.EventQueue$4.run(EventQueue.java:706) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:705) 在 com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:697) 在 com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520) 在 com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 在 java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

也许我做错了什么?

【问题讨论】:

    标签: android android-studio android-gradle-plugin


    【解决方案1】:

    导入项目时,请确保选择属于该项目的 Gradle 包装文件(gradlewgraadlew.batgradle 目录)并允许它在导入项目时使用包装器。这将确保它具有兼容版本的 Gradle 来运行项目。

    您列出的版本号:

    dependencies {
        classpath 'com.android.tools.build:gradle:0.14.+'
    }
    

    不是 Gradle 本身的版本,而是 Gradle 的 Android 插件。您收到的错误消息看起来像是 Gradle 的错误版本,但以正确的方式使用包装器应该可以解决它。

    【讨论】:

    • 谢谢。你说的对。那是 Gradle 的糟糕版本。我将 Android Studio 更新到最新版本,并且构建完成且没有错误。现在我正在使用gradle:1.0.0-rc4