无法解析模板“Class”

时间:2017-08-04 02:15:08

标签: java android android-studio

我正在尝试在android中创建类但我得到了这个错误

  

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

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

  

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

这是我的app 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
}

出了什么问题?

15 个答案:

答案 0 :(得分:51)

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

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

Screenshot of editor

答案 1 :(得分:45)

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

-Djdk.util.zip.ensureTrailingSlash=false

JetBrains Support by user Wojciech Fred

所示

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

我希望它有所帮助:D

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

答案 2 :(得分:32)

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

转到文件 - >设置 - >编辑 - >文件和代码模板,在文件标签中选择类并编写此

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

答案 3 :(得分:10)

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

  

无法解析模板" Class"错误消息:此模板没有   生成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添加它(选择帮助 - >编辑自定义VM选项 - >然后添加代码)。如果您之前没有创建自定义VM选项文件,则会提示对话提及"自定义VM选项文件不存在。你想创造它"选择是,工作室将创建自定义VM选项文件。然后按照上述步骤进行操作。

结论

哪一个更好?

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

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

进一步阅读

Intellij Support Page

Android Developer Page

Read more about Android Studio file templates

答案 4 :(得分:8)

在您的IntelliJ IDE中,转到Help =>编辑自定义VM选项并添加到您的idea.vmoptions或idea64.vmoptions以下行:

-Djdk.util.zip.ensureTrailingSlash=false

您可以详细了解herehere

答案 5 :(得分:4)

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} { }

答案 6 :(得分:4)

这个答案可能都是正确的,并且工作得非常好,我使用这个选项几天,它也适用于我,但还有另外一个选项,我认为哪个更好,因为,这个选项由< strong> android developer ,如下所示:

对于班级文件模板:

#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 {
}

enter image description here

答案 7 :(得分:3)

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

答案 8 :(得分:2)

我在使用IntelliJ IDEA 14的Mac上找到了文件idea.vmoptions:

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

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

-Djdk.util.zip.ensureTrailingSlash=false

答案 9 :(得分:1)

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

转到:

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

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

#set( $USER = "Your Name")

而不是

#set( USER  "Your Name")

我希望它有所帮助

答案 10 :(得分:0)

我遇到了同样的问题,它只是出现了我没有更改任何设置或更新Android工作室的事情。我选择

解决了这个问题
File -> Invalidate Caches & Restart

答案 11 :(得分:0)

转到文件 然后设置 - &gt;编辑 - &gt;文件和代码模板,在文件选项卡中选择Class并粘贴它 “#if($ {PACKAGE_NAME}&amp;&amp; $ {PACKAGE_NAME}!=”“)包$ {PACKAGE_NAME}; #end #parse(”File Header.java“)公共类$ {NAME} {}” 然后单击“应用”。

答案 12 :(得分:0)

我也遇到过同样的问题,但是我已经通过以下步骤解决了这个问题:

步骤1:转到“文件”菜单>>设置

第2步:然后单击编辑器,然后单击文件和代码模板

第3步:现在选择Class

Step4:之后,将此代码粘贴到编辑器中。有关更多详细信息,请参见图像。

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

enter image description here

答案 13 :(得分:0)

我在Idea 14中发现了相同的问题,但是事实并非如此,后来我发现在protobuf插件安装后就出现了。如果您卸载protobuf插件,它将再次起作用。

也许会帮助某人...

答案 14 :(得分:0)

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

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

希望有帮助。

enter image description here