错误:当前项目不支持运行配置应用程序。无法获取应用ID

Coe*_*oel 23 android gradle android-studio android-gradle-plugin

每次我在 Android Studio 中打开项目时,都会出现此错误:

Error: Run configuration app is not supported in the current project. Cannot obtain the application ID.
Run Code Online (Sandbox Code Playgroud)

当我单击 时Sync project with Gradle Files,同步过程结束后,此错误消失了。但是,当我重新打开项目或重新启动 Android Studio 时,此错误再次出现。

我知道Sync project with Gradle Files可以做到这一点,但我不想每次打开项目时都这样做,我尝试降级 Android Studio,但它似乎不起作用。

我的环境:

  • Android Studio 海豚 | 2021年3月1日
  • 摇篮7.5.1
  • Android Gradle 插件 7.3.0

有趣的是,每次启动 Android Studio 时,都会弹出 IDE 错误:

java.lang.IllegalStateException: Cannot find root module data: xxxx-xxxx
    at com.android.tools.idea.gradle.project.sync.idea.VariantSwitcher.getAndroidModules(VariantSwitcher.kt:248)
    at com.android.tools.idea.gradle.project.sync.idea.VariantSwitcher.getSelectedVariants(VariantSwitcher.kt:261)
    at com.android.tools.idea.gradle.project.sync.idea.VariantSwitcher.findAndSetupSelectedCachedVariantData(VariantSwitcher.kt:128)
    at com.android.tools.idea.gradle.project.AndroidGradleProjectStartupActivityKt.attachCachedModelsOrTriggerSync(AndroidGradleProjectStartupActivity.kt:198)
    at com.android.tools.idea.gradle.project.AndroidGradleProjectStartupActivityKt.access$attachCachedModelsOrTriggerSync(AndroidGradleProjectStartupActivity.kt:1)
    at com.android.tools.idea.gradle.project.AndroidGradleProjectStartupActivity.runActivity(AndroidGradleProjectStartupActivity.kt:105)
    at com.intellij.ide.startup.impl.StartupManagerImpl.runStartupActivity(StartupManagerImpl.kt:312)
    at com.intellij.ide.startup.impl.StartupManagerImpl.runActivityAndMeasureDuration(StartupManagerImpl.kt:293)
    at com.intellij.ide.startup.impl.StartupManagerImpl.runActivityAndMeasureDuration$default(StartupManagerImpl.kt:288)
    at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$1$2.run(StartupManagerImpl.kt:256)
    at com.intellij.openapi.project.DumbServiceImpl.doRun(DumbServiceImpl.java:395)
    at com.intellij.openapi.project.DumbServiceImpl.updateFinished(DumbServiceImpl.java:387)
    at com.intellij.openapi.project.TrackedEdtActivityService$TrackedEdtActivity.run(TrackedEdtActivityService.java:66)
    at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
    at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
    at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
    at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:348)
    at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:82)
    at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:131)
    at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47)
    at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:187)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:760)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Run Code Online (Sandbox Code Playgroud)

我依赖于我在settings.gradle中编写的另一个私有模块

includeBuild('external/xxxx-xxxx') {
    name "xxxx-xxxx"
    dependencySubstitution {
        substitute module('com.xxxx.xxxx:xxxx:1.0.0') using project(':xxxx-xxxx')
    }
}
Run Code Online (Sandbox Code Playgroud)

也许是我的子模块的问题或者 Android Studio/Gradle 中的错误?其他项目没有这个问题。

Poo*_*ngh 31

就我而言,清单文件中缺少包名称(很奇怪,因为我刚刚创建了项目,默认情况下它应该在那里),但我添加了它,现在它正在工作。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" package="com.example.name">
Run Code Online (Sandbox Code Playgroud)


Gre*_*Tea 19

就我而言有什么帮助:

  1. 关闭 IntelliJ Idea 项目(或 Android studio)
  2. 删除项目根目录中的 .idea 文件夹
  3. 打开项目目录,重新初始化。

  • 哦,哇,它有效。真的行。我简直不敢相信,它确实有效。 (4认同)