【问题标题】:Error while creating new Activity创建新活动时出错
【发布时间】:2017-03-22 08:58:38
【问题描述】:

我正在尝试创建一个新的 Activity,但出现以下错误(图片底部)

InvalidReferenceException:执行 FreeMarker 模板时出错...

如果我通过创建扩展 Activity 类的 Java 类来手动创建 Activity,那么它可以工作。

【问题讨论】:

  • 您可以手动添加 Activity 类和 XML 布局文件,而不是使用向导。记得将其添加到 Manifest。
  • 这样想... 文件 > 新建 > Java 类,从头开始学习可以帮助您更好地学习 :)
  • 是的,我知道,我只使用这种方式。但我想知道我遇到的错误是什么以及如何纠正它。
  • 创建自动生成代码的模板引擎中似乎存在错误。 (查看底部工具栏)。不过,不确定如何在不重新安装的情况下“修复”它。
  • 如果问题出在向导自动生成的代码上,那么这个问题可以通过手动添加来避免(希望)。右键单击您希望新 Activity 驻留的包,选择 New -> Java Class,为其命名,并确保扩展 AppCompatActivity。创建后,覆盖您的 onCreate 方法,创建 XML 布局文件并将 Activity 添加到 Manifest。这是做事的正确方式,IMO。

标签: java android


【解决方案1】:

从以下链接:Cannot create empty activity, in Android Studio 2.2.3,有些人遇到了同样的问题:

错误 - llij.ide.plugins.PluginManager - com.android.tools.idea.templates.FreemarkerUtils$TemplateProcessingException: freemarker.core.InvalidReferenceException:以下已评估 为空或丢失: ==> manifestDir [在模板“root://activities/common/common_globals.xml.ftl”第 26 行,列 39]

问题与 C 驱动器上创建的 tmp 文件夹有关

当我第一次安装 Android SDK 时,我将它安装到 C 盘并 在ud851-Exercises-student里面做了一些练习。那么,因为 我的 C 盘空间不足,我从 C 盘卸载了它,然后 将它安装到 D。也许我不小心打开了其中一个项目 这会导致 Android Studio 在 C 中创建 tmp 文件夹。

删除C:\tmp文件夹解决了问题

我遇到了同样的问题...删除 tmp 文件夹有帮助。

有关根本原因的更多信息:

我意识到这个问题是因为“buildDir”路径 Udacity 项目中的 build.gradle 文件。查看屏幕截图。

【讨论】:

  • 非常感谢伯杰,我被困在这里 2 天了。
【解决方案2】:

1) 在gradle文件(build.gradle)中注释掉以下代码

buildDir = "C:/tmp/${rootProject.name}/${project.name}" ---评论这一行

2) 使用页面顶部的 Sync Now 来同步项目 3)添加新的Empty Activity(子Activity) 4)取消注释您在gradle文件中注释掉的行 5) 再次同步项目

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 2014-04-14
    相关资源
    最近更新 更多