创建新活动时出现错误

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

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

如果我通过创建一个扩展Activity类的Java类来手动创建一个Activity,则可以正常工作。
请参考以下图片链接:enter image description here

1
你可以手动添加Activity类和XML布局文件,而不使用向导。请记得将其添加到Manifest中。 - mwieczorek
1
这样想吧...通过“文件”>“新建”>“Java类”,从头开始编写代码可以更好地帮助你学习 :) - OneCricketeer
模板引擎似乎存在错误,导致自动生成的代码出现问题(请查看底部工具栏)。不确定是否有办法“修复”它,除非重新安装相关内容。 - OneCricketeer
如果问题出在向导自动生成的代码上,那么可以通过手动添加内容来避免这个问题(希望如此)。右键单击您想要新 Activity 驻留的包,选择 New -> Java Class,给它一个名称,并确保您扩展了 AppCompatActivity。创建后,重写您的 onCreate 方法,创建 XML 布局文件并将 Activity 添加到清单中。这是我认为正确的做法。 - mwieczorek
是的@mwieczorek 我正在按照您描述的方式处理事情。但我想知道是什么导致了错误以及如何纠正它。 - Maroof
显示剩余3条评论
2个回答

8
从以下链接中:Android Studio 2.2.3无法创建空活动,一些人遇到了同样的问题:

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

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

当我第一次安装Android SDK时,我将其安装在C驱动器上,并在那里执行了一些练习。 然后,由于C驱动器上的空间不足,我将其从C卸载并安装到D。也许我意外地打开了其中一个项目, 这导致Android Studio在C中创建了tmp文件夹。

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

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

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

我意识到这个问题是由Udacity项目中build.gradle文件中的“buildDir”路径引起的。请参见屏幕截图。

enter image description here

非常感谢您,Berger。我在这里卡了两天了。 - Pulkit

1

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

// buildDir = "C:/tmp/${rootProject.name}/${project.name}" ---comment this line

2) 在页面顶部使用“立即同步”以同步项目 3) 添加新的空活动(子活动) 4) 取消注释您在gradle文件中注释的行 5) 再次同步项目


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接