【问题标题】:Cannot create new activity in android studio无法在 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)??

【问题讨论】:

    标签: android android-studio android-fragments illegalstateexception


    【解决方案1】:

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

    1. 关闭安卓工作室
    2. 删除文件夹: .idea.gradle
    3. 使用 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。

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

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

      【讨论】:

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

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

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

      注意:当您克隆并运行项目时,来自 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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-01-05
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多