web-dev-qa-db-ja.com

テンプレート「クラス」を解析できません

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
}

何が悪いの?

36
Hanan

「ファイル」->「設定」->「エディター」->「ファイルおよびコードテンプレート」に移動し、「ファイル」タブで「クラス」を選択して、これを貼り付けます。

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

Screenshot of editor

52
Da Man

私は同じ問題を抱えており、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の構成

45
Angel Castelo

Androidスタジオでこのようなものに遭遇しました。私がしたことは、IntelliJ Ideaを開いて(Androidスタジオがそれに基づいているため)、それぞれのテンプレートのデフォルトのテキストをコピーし、Androidスタジオのそれぞれのファイルに貼り付けました。

「ファイル」->「設定」->「エディター」->「ファイルおよびコードテンプレート」に移動し、「ファイル」タブで「クラス」を選択して、これを記述します

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

以前にこのエラーは発生しませんでした。この問題に直面したのは、Android Studio(バージョン3.0)を再インストールした後のみです。新しいクラスを作成すると、質問で述べたように次のエラーが発生します。

テンプレート「クラス」エラーメッセージを解析できません:このテンプレートはJavaクラスまたはインターフェイスを生成しませんでした

したがって、このエラーを取り除くには2つの方法があります

オプション1は@セミコロン回答です

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

オプション2は@Angel Casteloの回答です

VMカスタムオプション(studio.vmoptions)に次の行を追加します。

-Djdk.util.Zip.ensureTrailingSlash=false

私の提案は、Androidスタジオを使用して追加することです([ヘルプ]-> [カスタムVMオプションの編集]を選択し、コードを追加します)。以前にカスタムVMオプションファイルを作成しなかった場合は、「カスタムVMオプションファイルが存在しません。作成しますか?」というダイアログが表示されます。カスタムVMオプションファイルを作成します。次に、上記の手順に従います。

結論

どっちがいいですか?

この問題に最初に遭遇したとき、私はオプション1を選択し、次のプロジェクトを開始するまでうまく機能しました。新しいプロジェクトを開始すると、問題が再び表示されるので、このページにアクセスしてoption 2を見つけました。

option 2に従うと、option 1とは異なり、新しいプロジェクトを作成してもこの問題は再び発生しません。

さらに読む

Intellijサポートページ

Android開発者ページ

Android Studioファイルテンプレートの詳細を読む

10
Johnett Mathew

IntelliJ IDEで[ヘルプ] => [カスタムVMオプションの編集]に移動し、idea.vmoptionsまたはidea64.vmoptionsに次の行を追加します。

-Djdk.util.Zip.ensureTrailingSlash=false

詳しくは here および here をご覧ください。

8
Alex A. Adusei

セミコロンによるトリックは同様に機能します

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

このすべての答えは正しいかもしれませんし、非常にうまく機能します。私はこのオプションを数日間使用しますが、私にとってもうまくいきますが、もう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 {
}

enter image description here

4
Vikrant Shah

理由は、32ビットマシンに64ビットバージョンをインストールした可能性があるためです。同じ問題がありました。 32ビットOSを使用している場合は、64ビットバージョンのAndroid Studioをアンインストールし、このページから32ビットバージョンをインストールしてみてください。 https://developer.Android.com/studio/index.html#downloads

3

私はIntelliJ IDEA 14を使用しているMacで、ここにidea.vmoptionsファイルを見つけました。

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

次に、トップアンサーが提案したのと同じ行を追加しました。

-Djdk.util.Zip.ensureTrailingSlash=false
2
Lisa S

こんにちは、私は同じエラーがありました、そして、エラーはJavaファイルヘッダーテンプレートの悪い構文によるものでした。次の方法で解決しました。

に行きます:

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

テンプレートでいくつかの変数を定義した場合、変数がどのように定義されているかを確認します(たとえば):

#set( $USER = "Your Name")

の代わりに

#set( USER  "Your Name")

私はそれが役立つことを願っています

1
mgfernan

Idea 14でも同じ問題が見つかりました。しかし、インストールしたばかりではありませんでしたが、後でprotobufプラグインをインストールした後に現れました。 protobufプラグインをアンインストールすると、再び機能します。

たぶん誰かを助けるでしょう...

0
Denys

私は同じ問題を抱えていましたが、設定を変更したり、Androidスタジオを更新したりしなかったようです。選択して解決しました

File -> Invalidate Caches & Restart
0
Arlind

[ファイル]に移動し、[設定]-> [エディタ]-> [ファイルおよびコードテンプレート]を選択し、[ファイル]タブで[クラス]を選択し、この#if($ {PACKAGE_NAME} && $ {PACKAGE_NAME}!= "")package $ {PACKAGE_NAME};#end #parse( "File Header.Java")public class $ {NAME} {} "次に、[適用]をクリックします。

0
Diya Bhat

私の場合、以前は動作していましたが、突然このエラーメッセージが表示され始めました。上記の答えをいくつか試しましたが、キャッシュをクリアすると問題が解決しませんでした。

OnIntellijFile> Invalidate caches/Restartに移動し、Invalidate and Restartオプション。

それが役に立てば幸い。

enter image description here

0
Samir Agayarov

同じ問題が発生しましたが、次の手順でこの問題を修正しました。

ステップ1:[ファイル]メニュー>> [設定]に移動します

ステップ2:次に[エディター]をクリックし、[ファイルとコードテンプレート]をクリックします

ステップ3:クラスを選択します

Step4:その後、このコードをエディターに貼り付けます。詳細については、画像を参照してください。

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

enter image description here

0