无法在android studio中创建新活动

时间:2016-11-19 09:59:19

标签: android android-studio android-fragments illegalstateexception

在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)??

10 个答案:

答案 0 :(得分:6)

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

  1. 关闭android studio
  2. 删除文件夹: .idea 和 的 .gradle
  3. 使用android studio重新打开项目

答案 1 :(得分:3)

在设置好我的android环境后,我已经面临一个问题。我已经设置并配置了所有东西,但是仍然存在。经过几分钟的搜索,我发现在Logcat enter image description here

然后,我知道项目缺少构建工具版本。您必须提供用于项目运行的构建工具版本。在Mac中转到>> 项目结构(Cmd +;)。选择Compile Sdk VersionBuild Tools Versionenter image description here构建gradle之后,已修复了从菜单错误创建新活动的问题。希望对您有帮助。

说明 :克隆和运行项目时,Github或bitbucket中的某些项目也缺少“构建工具”版本。这些都是相同的错误,这种方法可以帮助解决它们。

答案 2 :(得分:3)

方法1:只需从应用程序级别build.gradle中删除以下代码

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



方法2:如果同时存在两个软件包(kotlin和java)

我遇到了与每次通过Android Studio提供的活动模板创建新活动一样的问题。即使Gradle同步成功完成,也没有任何反应。

很长一段时间后,我发现项目中的 java 目录名以某种方式更改为 kotlin 。我猜想Android Studio正在寻找Java包来创建新的Activity。

然后,要解决此问题,请按照以下步骤操作:

  1. 关闭Android Studio
  2. ../ProjectName/app/src/main/的身份到达Java目录下的项目位置
  3. 在此主目录中,我拥有kotlin目录,而不是java
    因此,我刚刚将其重命名为java
  4. 然后使用Android Studio打开项目,仅此而已。
  5. 我创建了一个新活动,它可以像以前一样轻松地创建一个活动。

答案 3 :(得分:1)

注释build.gradle中的代码,该代码在tmp目录中创建文件夹,然后创建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()
}

}

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

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

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

尝试File->使高速缓存/重新启动无效。要么 刚刚删除c:驱动器中的tmp文件夹并重新启动所有内容,它将正常工作。

答案 6 :(得分:0)

在build.gradle文件中,添加

let smth = browser.elements('selector').value.length;

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

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

}

答案 7 :(得分:0)

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

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

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

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

由于我的项目工作目录位于 F:驱动器中,因此我将上述 C:驱动器更改为 F:

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

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

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

答案 8 :(得分:0)

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

答案 9 :(得分:-1)

删除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

找到它