无法在 android studio 中创建新活动

Posted

技术标签:

【中文标题】无法在 android studio 中创建新活动【英文标题】:Cannot create new activity in android studio 【发布时间】:2017-04-03 03:43:42 【问题描述】:

android studio 中创建新的 activity 时,我在事件日志中不断收到 IllegalStateException 错误:

11:27:15 InvalidReferenceException: Error executing FreeMarker template: The following has evaluated to null or missing:
==> srcDir  [in template "root://activities/common/common_globals.xml.ftl" at line 41, column 34]

Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use when-presentwhen-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,尝试以下步骤对我有用:

    关闭安卓工作室 删除文件夹: .idea.gradle 使用 android studio 重新打开项目

【讨论】:

【参考方案2】:

方法一:只需从你的应用级 build.gradle 中删除以下代码

debug 
            storeFile file('/Users/Razz/Documents/keys/keystore.jks')
            storePassword 'ABC@123'
            keyAlias 'key0'
            keyPassword 'ABC@123'
      

方法二:万一,如果有两个包一起(kotlin和java)

每当我从 android studio 提供的活动模板中创建新活动时,我都面临同样的问题。即使在 Gradle 同步成功完成后也没有发生任何事情。

经过很长的项目,我发现我的项目中的 java 目录名称以某种方式更改为 kotlin 。我认为 Android Studio 正在寻找 java 包来创建新的 Activity。

然后,为了解决这个问题,我按照以下步骤操作:

    关闭 Android Studio 以../ProjectName/app/src/main/ 的身份进入项目位置到java 目录 在这个主目录中,我有kotlin 目录而不是java。 所以,我只是将其重命名为java。 然后用 Android Studio 打开项目,就这样。 我创建了一个新的活动,它很容易像以前一样创建一个。

【讨论】:

我在 Window10 机器上面临同样的问题。而且我的目录没有改成kotlin。还是没有解决。 第一种方法你试过了吗?【参考方案3】:

在我设置好我的android环境后,我遇到了这个问题。我已经设置并配置了所有东西,但仍然出现这种情况。搜索几分钟后,我在Logcat中找到了问题,

然后,我知道项目缺少构建工具版本。您必须提供将用于运行项目的构建工具版本。转到 >> 项目结构 , ( Cmd + ; ) in mac。选择Compile Sdk VersionBuild Tools Version, gradle 构建后,从菜单错误创建新活动已得到修复。我希望这对你有帮助。

注意:当您克隆并运行项目时,来自 Github 或 bitbucket 的一些项目也缺少构建工具版本。这些是相同的错误,这种方法可以帮助解决它们。

【讨论】:

【参考方案4】:

注释 build.gradle 中的代码,该代码在 tmp 目录中创建文件夹,然后创建 Activity。

成功创建activity后,还原build.gradle(Co)中的注释代码

allprojects 
/*String osName = System.getProperty("os.name").toLowerCase();
if (osName.contains("windows")) 
    buildDir = "C:/tmp/$rootProject.name/$project.name"
*/
repositories 
    jcenter()

【讨论】:

【参考方案5】:

在build.gradle文件中,添加

buildDir = "C:/tmp/$rootProject.name/$project.name"

同步 gradle 然后删除它并再次同步。这对我有用。

allprojects 
buildDir = "C:/tmp/$rootProject.name/$project.name"
repositories 
    jcenter()

【讨论】:

【参考方案6】:

我在 2 天前遇到了同样的问题,我通过更新以下文本来解决它。检查 gradle.build 应用程序和模块到较新的版本。

classpath 'com.google.gms:google-services:4.3.4'

【讨论】:

嘿嘿,如果您只想对某个问题发表评论,请等到您有足够的声望后再这样做。 我在 2 天前遇到了同样的问题,我通过更新以下文本来解决它。我只是想帮忙。类路径 'com.google.gms:google-services:4.3.4'【参考方案7】:

我有同样的问题。 访问此链接。 https://code.google.com/p/android/issues/detail?id=232076

如果您的项目位于 C 以外的其他驱动器中,则会发生这种情况: android studio 将自动在 C: 驱动器的 tmp 文件夹中创建您项目的副本(我希望它们是缓存文件)。此文件夹是导致此问题的原因。

尝试文件-> 使缓存无效/重新启动。要么 刚刚删除了c:盘中的tmp文件夹,然后重新启动一切就可以正常工作了。

【讨论】:

你能把日志信息发一下吗。【参考方案8】:

我在尝试创建新活动时遇到了同样的问题。 IDE Fatal Errors

我在 Windows 7 Professional 上运行 Android Studio 3.2.1。在我开始从不同的驱动器切换加载项目之前,我没有遇到这个问题 - 我曾经从 F: 驱动器运行我的项目,当我将示例代码下载到 C: 驱动器时,创建新活动开始给这个 IDE 致命错误。

从在线资源中获得了由build.gradle(Project:) 中的buildDir 路径引起的潜在问题的线索,如下所示;

buildDir = "C:/tmp/$rootProject.name/$project.name"

由于我的项目工作目录在F:盘,我把上面的C:盘改成了F:

buildDir = "F:/tmp/$rootProject.name/$project.name"

通过这个简单的更改,我现在可以创建新的 Activity。

如果没有其他方法适合您,我建议您尝试此解决方案。

【讨论】:

【参考方案9】:

我已经尝试了上述大多数建议,但都没有成功;目录很好,缓存失效等。但是如果你右键单击项目文件夹,New > Activity > Gallery(所有其他都是灰色的),单击任何活动模板都会显示确切的问题。就我而言,出于某种原因,我的所有活动(包括基本活动和空活动)都需要 minSdkVersion 16;不是原来的 15。如果其他人失败了,我希望这对你有用。

【讨论】:

【参考方案10】:

删除 gradle 文件中的构建文件夹重定向代码是一种解决方法。

allprojects 

    //String osName = System.getProperty("os.name").toLowerCase();
    //if (osName.contains("windows")) 
    //    buildDir = "C:/tmp/$rootProject.name/$project.name"
    //
    repositories 
        jcenter()
    

在这里找到它https://github.com/udacity/ud851-Exercises/issues/67

【讨论】:

以上是关于无法在 android studio 中创建新活动的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Visual Studio 2013 中创建新的 Web 项目

如何在 android studio 中创建没有主要活动的应用程序?

如何在 Kotlin 中创建一个打开新活动(Android Studio)的按钮?

使用 C++ 在 Visual Studio 2019 中创建新的头文件?

我找不到在 Android Studio 中创建的 recyclerview 的 setOnItemClickListener

每次在 Android 中创建新的 Pending Intent