无法在 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 Version
和Build 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