无法解析模板"Class"

Han*_*an 38 java android android-studio

我想在android中创建类但我得到了这个错误

无法解析模板"类"错误消息:此模板未生成Java类或接口

并在事件日志中我收到此错误

FileNotFoundException:在/D:/Android%20Studio/lib/idea.jar中找不到条目fileTemplates // code/Google Test Fixture SetUp Method.cc.ft

这是我的应用程序bulid gradle

apply plugin: 'com.android.application'

android
  {

compileSdkVersion 23
buildToolsVersion '25.0.0'

defaultConfig {
    applicationId "com.hh.ss.msed"
    minSdkVersion 14
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    multiDexEnabled true


}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.firebase:firebase-core:11.0.1'
    compile 'com.google.firebase:firebase-database:11.0.1'
    compile 'com.google.firebase:firebase-crash:11.0.1'
    compile 'com.google.firebase:firebase-storage:11.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.0'
    compile 'com.android.support:cardview-v7:23.0.0'
    compile 'com.firebaseui:firebase-ui-database:0.6.2'


    compile 'com.firebase:firebase-client-android:2.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.android.support:support-v4:23.0.0'


}


packagingOptions {
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LGPL2.1'
   }
  }
  apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

这个bulid gradle项目

// Top-level build file where you can add configuration options common to all sub-projects/modules.

  buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:2.3.3'
    classpath 'com.google.gms:google-services:3.1.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }
 }

 allprojects {
  repositories {
    jcenter()
  }
}

task clean(type: Delete) {
  delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)

怎么了?

Da *_*Man 55

转到文件 - >设置 - >编辑器 - >文件和代码模板,在文件选项卡中选择类并粘贴:

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") public class ${NAME} { }
Run Code Online (Sandbox Code Playgroud)

编辑截图


小智 45

我有同样的问题,并通过添加idea.vmoptionsidea64.vmoptions以下行解决它:

-Djdk.util.zip.ensureTrailingSlash=false
Run Code Online (Sandbox Code Playgroud)

正如用户Wojciech FredJetBrains支持中所示

似乎是oracle应用于Java 8 Update 144的修复程序

我希望它有所帮助:D

编辑:在Android Studio中,该文件名为studio.vmoptions,可以在配置目录中找到,但如果您转到"帮助>编辑自定义VM选项"菜单则更容易: Android Studio配置


Sem*_*lon 32

我在android studio中遇到过类似的东西.我做的是我打开IntelliJ Idea(因为Android工作室是基于它),并复制相应模板的默认文本并粘贴在android studio各自的文件中.

转到文件 - >设置 - >编辑器 - >文件和代码模板,在文件选项卡中选择类并编写它

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") public class ${NAME} { } 
Run Code Online (Sandbox Code Playgroud)


Joh*_*hew 11

之前我没有遇到过这个错误.我重新安装我的android studio(版本3.0)之后才遇到这个问题.创建新类会在问题中提到以下错误.

无法解析模板"类"错误消息:此模板未生成Java类或接口

所以有两种方法可以摆脱这个错误

选项1是@Semicolon答案

转到文件 - >设置 - >编辑器 - >文件和代码模板,在文件选项卡中选择类并编写它

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") public class ${NAME} { }
Run Code Online (Sandbox Code Playgroud)

选项2是@Angel Castelo的答案

将以下行添加到VM自定义选项(studio.vmoptions).

-Djdk.util.zip.ensureTrailingSlash=false
Run Code Online (Sandbox Code Playgroud)

我的建议是使用android studio添加它(选择Help-> Edit Custom VM Options->然后添加代码).如果您之前没有创建自定义虚拟机选项文件,则会提示对话提及"自定义虚拟机选项文件不存在.是否要创建它"选择是,工作室将创建自定义虚拟机选项文件.然后按照上述步骤进行操作.

结论

哪一个更好?

当我第一次遇到这个问题时,我选择了第一个选项,并且在我开始下一个项目之前它运行良好.当我开始一个新项目时,问题又出现了,所以我访问了这个页面并找到了选项2,它对我来说非常有用.

当我们按照选项2创建新项目时,不会再次触发此问题,这与选项1不同.

进一步阅读

Intellij支持页面

Android开发者页面

阅读有关Android Studio文件模板的更多信息


小智 8

在您的IntelliJ IDE中,转到Help => Edit Custom VM Options并添加到您的idea.vmoptions或idea64.vmoptions以下行:

-Djdk.util.zip.ensureTrailingSlash=false

你可以在这里这里阅读更多相关信息.


Sam*_*mir 7

就我而言,它之前可以正常工作,但突然开始显示此错误消息。我尝试了上面的一些答案,但没有帮助,因此清除缓存解决了我的问题。

Intellij上,转到“文件”>“无效缓存/重新启动”,然后选择“无效并重新启动”选项。

希望能帮助到你。

在此输入图像描述

  • 是的,简单地说,这是最好的情况,请在任何其他答案之前尝试这样做 (2认同)

mgf*_*nan 1

您好,我遇到了同样的错误,该错误是由于 Java 文件标头模板中的语法错误造成的。我通过以下方式解决了它:

去:

Android Studio -> Preferences -> File and Code Templates -> Includes -> File Header
Run Code Online (Sandbox Code Playgroud)

如果您在模板中定义了一些变量,请检查变量是如何定义的,应该是(例如):

#set( $USER = "Your Name")
Run Code Online (Sandbox Code Playgroud)

代替

#set( USER  "Your Name")
Run Code Online (Sandbox Code Playgroud)

我希望它有帮助