我正在尝试在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
}
出了什么问题?
答案 0 :(得分:51)
转到文件 - >设置 - >编辑器 - >文件和代码模板,在文件标签中选择类并粘贴:
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") public class ${NAME} { }
答案 1 :(得分:45)
我遇到了同样的问题,并通过添加idea.vmoptions
或idea64.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类或接口
所以有两种方法可以摆脱这个错误
转到文件 - >设置 - >编辑器 - >文件和代码模板,在文件标签中选择类并写下
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") public class ${NAME} { }
将以下行添加到VM自定义选项(studio.vmoptions)。
-Djdk.util.zip.ensureTrailingSlash=false
我的建议是使用android studio添加它(选择帮助 - >编辑自定义VM选项 - >然后添加代码)。如果您之前没有创建自定义VM选项文件,则会提示对话提及"自定义VM选项文件不存在。你想创造它"选择是,工作室将创建自定义VM选项文件。然后按照上述步骤进行操作。
哪一个更好?
当我第一次遇到这个问题时,我选择了第一个选项并且它运行良好,直到我开始下一个项目。当我开始一个新项目时,问题又出现了,所以我访问了这个页面并找到了选项2 ,这对我来说非常合适。
当我们按照选项2 创建新项目时,不会再次触发此问题,而不像选项1 。
答案 4 :(得分:8)
在您的IntelliJ IDE中,转到Help =>编辑自定义VM选项并添加到您的idea.vmoptions或idea64.vmoptions以下行:
-Djdk.util.zip.ensureTrailingSlash=false
答案 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 {
}
答案 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} { }
答案 13 :(得分:0)
我在Idea 14中发现了相同的问题,但是事实并非如此,后来我发现在protobuf插件安装后就出现了。如果您卸载protobuf插件,它将再次起作用。
也许会帮助某人...
答案 14 :(得分:0)