无法解析模板“Class”

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

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

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

FileNotFoundException:条目fileTemplates //在/D:/Android%20Studio/lib/idea.jar中找不到// 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' 

这个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 } 

怎么了?

Solutions Collecting From Web of "无法解析模板“Class”"

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

 -Djdk.util.zip.ensureTrailingSlash=false 

正如用户Wojciech Fred在JetBrains支持中所示

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

我希望它有所帮助:D

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

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

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

编辑截图

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

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

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

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

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

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

选项1是@Semicolon答案

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

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

选项2是@Angel Castelo的答案

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

 -Djdk.util.zip.ensureTrailingSlash=false 

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

结论

哪一个更好?

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

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

进一步阅读

Intellij支持页面

Android开发者页面

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

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

-Djdk.util.zip.ensureTrailingSlash=false

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

Semicolon工作的技巧同样适用于添加接口

 Android Studio -> Preferences -> File and Code Templates -> Files -> Interface 

并添加以下代码

 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") public interface ${NAME} { } 

原因是您可能在32位计算机上安装了64位版本。 我有同样的问题。 如果您有32位操作系统,请尝试卸载64位版本的Android Studio并从此页面安装32位版本: https : //developer.android.com/studio/index.html#downloads

这个答案可能是正确的,而且工作得非常好,我使用这个选项几天,它也适用于我,但还有另外一个选项,我认为哪个更好,因为,这个选项由android开发人员给出,这是如下:

对于类文件模板:

 #if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end #if (${ABSTRACT} == "TRUE")abstract #end #if (${FINAL} == "TRUE")final #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end { } 

接口文件模板

 #if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end { #end { } 

在此处输入图像描述

嗨,我有同样的错误,错误是由于Java文件头模板中的语法错误。 我用以下方式解决了它:

去:

 Android Studio -> Preferences -> File and Code Templates -> Includes -> File Header 

如果您在模板中定义了一些variables,请检查variables的定义方式(例如):

 #set( $USER = "Your Name") 

代替

 #set( USER "Your Name") 

我希望它有所帮助

我在使用IntelliJ IDEA 14的Mac上,我在这里find了idea.vmoptions文件:

 ~/Applications/IntelliJ IDEA 14 (Right click Show Package Contents) /Contents/bin/idea.vmoptions 

然后我添加了顶级回答者建议的相同行:

 -Djdk.util.zip.ensureTrailingSlash=false 

转到文件然后设置 – >编辑器 – >文件和代码模板,在文件选项卡中选择类并粘贴“#if($ {PACKAGE_NAME} && $ {PACKAGE_NAME}!=”“)包$ {PACKAGE_NAME}; #end #parse(“File Header.java”)public class $ {NAME} {}“然后点击Apply。

我有同样的问题,它刚刚出现我没有改变任何设置或更新Android工作室的事情。 我通过选择解决了它

 File -> Invalidate Caches & Restart