Androidでクラスを作成しようとしていますが、このエラーが発生しました
テンプレート「クラス」エラーメッセージを解析できません:このテンプレートはJavaクラスまたはインターフェイスを生成しませんでした
イベントログでこのエラーが発生しました
FileNotFoundException:エントリfileTemplates // code/Google Test Fixture SetUp Method.cc.ftが/D:/Android%20Studio/lib/idea.jarに見つかりません
これは私のアプリ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'
このブリッドグラドルプロジェクト
// 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
}
何が悪いの?
「ファイル」->「設定」->「エディター」->「ファイルおよびコードテンプレート」に移動し、「ファイル」タブで「クラス」を選択して、これを貼り付けます。
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.Java") public class ${NAME} { }
私は同じ問題を抱えており、idea.vmoptions
またはidea64.vmoptions
に次の行を追加することで解決しました。
-Djdk.util.Zip.ensureTrailingSlash=false
ユーザーWojciech FredによるJetBrainsサポート
OracleがJava 8 Update 144に適用した修正のようです
私はそれが役立つことを願っています:D
編集:Android Studioでは、このファイルはstudio.vmoptionsと呼ばれ、構成ディレクトリ内にありますが、[ヘルプ>カスタムVMオプションの編集]メニューに移動すると簡単です:- Android Studioの構成
Androidスタジオでこのようなものに遭遇しました。私がしたことは、IntelliJ Ideaを開いて(Androidスタジオがそれに基づいているため)、それぞれのテンプレートのデフォルトのテキストをコピーし、Androidスタジオのそれぞれのファイルに貼り付けました。
「ファイル」->「設定」->「エディター」->「ファイルおよびコードテンプレート」に移動し、「ファイル」タブで「クラス」を選択して、これを記述します
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.Java") public class ${NAME} { }
以前にこのエラーは発生しませんでした。この問題に直面したのは、Android Studio(バージョン3.0)を再インストールした後のみです。新しいクラスを作成すると、質問で述べたように次のエラーが発生します。
テンプレート「クラス」エラーメッセージを解析できません:このテンプレートはJavaクラスまたはインターフェイスを生成しませんでした
したがって、このエラーを取り除くには2つの方法があります
File-> Setting-> Editor-> File and Code Templatesに移動し、filesタブでClassを選択して、これを記述します
#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スタジオを使用して追加することです([ヘルプ]-> [カスタムVMオプションの編集]を選択し、コードを追加します)。以前にカスタムVMオプションファイルを作成しなかった場合は、「カスタムVMオプションファイルが存在しません。作成しますか?」というダイアログが表示されます。カスタムVMオプションファイルを作成します。次に、上記の手順に従います。
どっちがいいですか?
この問題に最初に遭遇したとき、私はオプション1を選択し、次のプロジェクトを開始するまでうまく機能しました。新しいプロジェクトを開始すると、問題が再び表示されるので、このページにアクセスしてoption 2を見つけました。
option 2に従うと、option 1とは異なり、新しいプロジェクトを作成してもこの問題は再び発生しません。
セミコロンによるトリックは同様に機能します
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} { }
このすべての答えは正しいかもしれませんし、非常にうまく機能します。私はこのオプションを数日間使用しますが、私にとってもうまくいきますが、もう1つのオプションがあり、このオプションは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 {
}
理由は、32ビットマシンに64ビットバージョンをインストールした可能性があるためです。同じ問題がありました。 32ビットOSを使用している場合は、64ビットバージョンのAndroid Studioをアンインストールし、このページから32ビットバージョンをインストールしてみてください。 https://developer.Android.com/studio/index.html#downloads
私はIntelliJ IDEA 14を使用しているMacで、ここにidea.vmoptionsファイルを見つけました。
~/Applications/IntelliJ IDEA 14 (Right click Show Package Contents) /Contents/bin/idea.vmoptions
次に、トップアンサーが提案したのと同じ行を追加しました。
-Djdk.util.Zip.ensureTrailingSlash=false
こんにちは、私は同じエラーがありました、そして、エラーはJavaファイルヘッダーテンプレートの悪い構文によるものでした。次の方法で解決しました。
に行きます:
Android Studio -> Preferences -> File and Code Templates -> Includes -> File Header
テンプレートでいくつかの変数を定義した場合、変数がどのように定義されているかを確認します(たとえば):
#set( $USER = "Your Name")
の代わりに
#set( USER "Your Name")
私はそれが役立つことを願っています
Idea 14でも同じ問題が見つかりました。しかし、インストールしたばかりではありませんでしたが、後でprotobufプラグインをインストールした後に現れました。 protobufプラグインをアンインストールすると、再び機能します。
たぶん誰かを助けるでしょう...
私は同じ問題を抱えていましたが、設定を変更したり、Androidスタジオを更新したりしなかったようです。選択して解決しました
File -> Invalidate Caches & Restart
[ファイル]に移動し、[設定]-> [エディタ]-> [ファイルおよびコードテンプレート]を選択し、[ファイル]タブで[クラス]を選択し、この#if($ {PACKAGE_NAME} && $ {PACKAGE_NAME}!= "")package $ {PACKAGE_NAME};#end #parse( "File Header.Java")public class $ {NAME} {} "次に、[適用]をクリックします。