アプリでサポートされていないmajor.minorバージョン52.0


126

Androidプロジェクトをコンパイルしようとしていますが、このエラーが発生します

[INFO] Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
[INFO]  at java.lang.ClassLoader.defineClass1(Native Method)
[INFO]  at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
[INFO]  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[INFO]  at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
[INFO]  at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
[INFO]  at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
[INFO]  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[INFO]  at java.security.AccessController.doPrivileged(Native Method)
[INFO]  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[INFO]  at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
[INFO]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
[INFO]  at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
[INFO]  at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

私は他の投稿を読んでいて、Java 8でコンパイルしようとするとそのエラーが発生する可能性がありますが、私の場合は発生しません。次のJavaバージョンを使用しています。

java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

OS:Linux Mint(Java 8がインストールされていません。)ビルド:MAVEN

誰かがこれを手伝ってくれる?


2
ルックスは、あなたが地元のJDK 7でのJava 8コンパイルされたライブラリを使用している可能性が好き
テイラー

どうすれば修正できますか?@テイラー
Rafael Reyes

4
jdk 8に切り替えるか、次を含む古いバージョンのライブラリを使用しますcom/android/dx/command/Main
Taylor

jdk 8に切り替えることはできません。com/ android / dx / command / Mainを含むライブラリのバージョンをダウングレードするにはどうすればよいですか?@テイラー
ラファエルレイエス

1
現在地からチャットを使用できません。
テイラー

回答:


236

Android Studioから新しいプロジェクトを作成するときも、この問題に直面します。

私はアプリのgradle設定でbuildToolsVersionをダウングレードすることでこれを解決できました:{module-name} /build.gradle lineを変更してください

buildToolsVersion "24.0.0 rc1"

buildToolsVersion "23.0.3"


@編集:
Android Studio 2.1では、[ファイル]-> [プロジェクト構造]-> [アプリ]-> [ビルドツールバージョン]に移動します。23.0.3に変更します

上記の方法を実行するのは、Javaバージョン7を使用していて、何らかの理由でまだJava 8にアップグレードしたくない場合のみです。

お役に立てれば


@RafaelReyes Mavenを使用したAndroidプロジェクトの構築について何も知りません。しかし、アンドロイドはとにかくビルドツールを使用するので、ビルドツールのバージョンがMaven構成で使用されているバージョンを見つけることができませんか?
Rudy Kurniawan

1
@RudyKurniawanHi、おそらく<version> 4.1.1.4 </ version>
Rafael Reyes

2
新しいバージョン:buildToolsVersion "23.0.3"
XurajB

1
それは答えをありがとうの助けになりましたが、ビルド24が必要な場合はどうすればよいですか?
shridutt kothari

2
そのためには、java 8を使用してアプリをビルドする必要があります
Rudy Kurniawan


31

Rudy Kurniawanの回答で指定さbuildToolsVersionれている24.0.0 rc3ように23.0.3、最初はからにダウングレードしていました。次に、プロジェクト設定でjdk 7が指定されていることに気付きました。私はそれをjdk 8に変更し、ビルドツールが24.0.0 rc3機能するようになりました。

ここに画像の説明を入力してください

コンパイルオプションを次のように設定することも重要java7です。

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

これでAndroidStudio 2の問題が解決しました。奇妙なエラーがたくさん表示されていました。
wmac

最新でbuildToolsVersion 25.0.1、それは、Java 8を必要とする
IgorGanapolsky

14

Xamarin Visual Studioと一緒にAndroid Studioをインストールしました(既にインストールされています)。インストール後(SDKは除外されています。既にインストールされているためです)、Android Studioを起動して、不足しているSDKをダウンロード、インストール、追加しました(SDKの場所へのパスを指定した後)。その結果、ビルド時にエラーメッセージが表示されました

java.lang.UnsupportedClassVersionError:com / android / dx / command / Main:Unsupported major.minor version 52.0

ソリューションとして、jdk-8u101-windows-i586.exeJREなしでインストールしました(すでにインストールされているため)。x64バージョンを試す前に、それが消えてしまいました...次に、Java Development Kitの場所を変更する必要があります

JDKの場所を変更する

これは、Visual Studioで[ツール]> [オプション]> [Xamarin]> [Android設定]をクリックして行います。ここでは、正しい場所に移動できます。私の場合はそうだったC:\Program Files (x86)\Java\jdk1.8.0_101

最後に、プロジェクトをクリーンアップして、新しいビルドを作成します:-)


「または、AndroidSdkBuildToolsVersion MSBuildプロパティを以前のバージョンに設定します。たとえば、バージョン23.0.3もインストールしている場合、Androidプロジェクトの.csprojファイルの一番上の<PropertyGroup>要素内に次の行を追加できます:<AndroidSdkBuildToolsVersion> 23.0 0.3 </ AndroidSdkBuildToolsVersion>」REF: releases.xamarin.com/...
SAMIS

8

指定された問題:

スレッド「メイン」の例外java.lang.UnsupportedClassVersionError:com / android / dx / command / Main:サポートされていないmajor.minorバージョン52。

内で宣言されたときに発生しbuild.gradlebuildToolsVersion 24そして我々は、Java 8は、このバージョンのために必要とされているインストールされていドント。この問題を解決するにはbuildToolsVersion、24から最大23 に変更する必要があります。

ここに画像の説明を入力してください

には将来的にJava 8が必要になるためAndroid Studio、Java 8を使い始める必要があります。


6

IntelliJ Mavenビルドでも同じ問題が発生しました。私の「解決策」は、ビルドツールに移動して、ビルドツールの24.0.0フォルダーを削除することでした。{android-sdk-location}/build-tools/ディレクトリで見つけました。これは長期的な修正ではありませんが、少なくともプロジェクトを再度構築できるはずです。多くの人が示唆しているように、Java 8にアップグレードする方が長期的には良いでしょう。


これは、Android StudioのUIで他の回答に記載されている設定が見つからなかったため、実際に使用できる最初のオプションです。私はそれを削除してから、新しいプロジェクトを作成し、うまくいきました。
ミッチ2016

5

Eclipseで新しいプロジェクトを作成するときにもこの問題に直面しました。

  1. Eclipseインストールディレクトリを開きます
  2. eclipse.iniファイルを開きます
  3. 修正

    Dosgi.requiredJavaVersion=1.6 

    Dosgi.requiredJavaVersion=1.7

お役に立てれば


/Applications/eclipse/configuration/config.iniに「Dosgi.requiredJavaVersion = 1.7」という行を追加します。macOSSierraで完全に機能します
Bob Cheng

OPの質問はEclipseに関連していると思いますか?
IgorGanapolsky 2016年

5

ここで誰も言っていないことは、ビルドツール24.0.0ではJava 8が必要であり、ほとんどの人が1.6または1.7を持っているということです。

つまり、そうです、ビルドツールを23.xxに設定すると問題が「解決」しますが、根本的な原因はシステムのJavaバージョンです。

長期的には、JDK8を使用するように開発環境をアップグレードして、新しい言語の拡張機能とジャックコンパイラを使用することができます。


5

52はJDK 8のコードです。これはhttp://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.htmlで確認できます。したがって、Gradleは、マシンのデフォルトのJavaバージョンとしてJDK 8があることを期待しています。Android向けGradleの最新バージョンはJava 7では動作しません。

解決策は簡単です。Java8をマシンのデフォルトのjdkバージョンにします。


どうやってそれを行うのですか?
GuidoG 2017年

@GuidoG特定のオペレーティングシステムのインストール手順に従う必要があります。Googleだけで、詳細な手順が表示されます。目標は、コマンドラインからjava-versionを実行し、それをとして表示できるようにすること1.8です。
IgorGanapolsky 2017年

4

Android Studio 2.0を使用していますが、同じ問題に直面しています。Rudy Kurniawanによって提供されたソリューションは、この問題を解決しました。影響を受けるファイルは次の場所にあります。

「プロジェクト」->「Android」->「Gradleスクリプト」->「build.gradle(Module:app)」

プロジェクト」ペインは左側のデフォルトです。それを見つけるには、サイドタブの名前を調べてクリックし、上部のプルダウンボックスを使用して「Android」にアクセスします。ペインのツリーを展開して、ターゲットファイルを見つけます。ダブルクリックして編集します。


私はMavenビルドでIntellij IDEAを使用しています。
Rafael Reyes

4

返信が遅くなってすみません。

この問題は、JDKではなくSDKに関連しています。からバージョン情報を確認できます

ヘルプ>バージョン情報>詳細を表示

次のようなものになります

Xamarin.Androidバージョン:6.0.2.1(初心者向け)Android SDK:X:\ Android \ android-sdk

サポートされているAndroidバージョン:

4.0.3(APIレベル15)

4.4(APIレベル19)

6.0(APIレベル23)

SDKツールのバージョン:24.4.1

SDKプラットフォームツールバージョン:23.0.1

SDKビルドツールバージョン:24 rc2

Java SDK:X:\ Program Files(x86)\ Java \ jdk1.7.0_71

Javaバージョン「1.7.0_71」

Java(TM)SEランタイム環境(ビルド1.7.0_71-b14)

Java HotSpot(TM)クライアントVM(ビルド24.71-b01、混合モード、共有)

ビルドにプレビューツールを使用している場合、同様のエラーが発生します。

今何をする?

後藤

ツール-> SDKマネージャー

  1. プレビューチャネルのすべてのアイテムを選択します(Android SDK build toolsリビジョン24rc2または24rc4(最新)を含む)

  2. クリック Delete 'n' packages

プレビューチャネルをオフにする方法

  1. SDKマネージャーで、

    ツール>オプション

  2. チェックを外す Enable preview tools

そして何

コードに戻る すべてクリーン アップして再ビルドします(まれに、プロジェクト設定ページからビルドツールを選択する必要があります)


これでうまくいきました。その前に、jdk 8をインストールし、ここの別の回答で説明されているようにディレクトリを変更しました
Abdur Ra​​him

XamarinはOPの質問とどのように関連していますか?
IgorGanapolsky 2016

「または、AndroidSdkBuildToolsVersion MSBuildプロパティを以前のバージョンに設定します。たとえば、バージョン23.0.3もインストールしている場合、Androidプロジェクトの.csprojファイルの一番上の<PropertyGroup>要素内に次の行を追加できます:<AndroidSdkBuildToolsVersion> 23.0 .3 </ AndroidSdkBuildToolsVersion> "
samis

2

解決策をみんなに感謝します。

以下の解決策を使用して同じ問題を解決できました。

私のプロジェクトでは、Java8で作成されたjarを追加しました。そして、私のプロジェクトはJRE 7を参照していました。プロジェクトJREを8に変更すると、問題は解決しました。

手順:日食で、プロジェクトエクスプローラーでプロジェクト名を右クリック>ビルドパス>ライブラリ> jreバージョンをクリック>編集>インストールされたJRE>追加>標準VM> JREホームクリックパスを選択(パスはlocalePath \ java \ jdk1である必要があります) .8.0_25 \ jre)>名前を指定>保存>プロジェクトに同じJREを選択>完了> OK一度プロジェクトを更新/ビルド> Javaファイルを実行してみます。うまくいくはずです。


2

Travisビルドサーバーでこのエラーメッセージを取得しますか?

私はこれを使用してbuildToolsVersion "24.0.2"で私のトラビスビルドを修正しました

# travis build 
language: android

jdk:
  - oraclejdk8

android:
  components:
    - tools
    - build-tools-24.0.2
    - android-23

    - add-on
    - extra

script:
  - jdk_switcher use oraclejdk8
  - ./gradlew assemble

そのとおりです。トラビスのビルドを修正しようとしたときに、この質問が役に立たないことがわかりました。私が修正する方法を見つけた後、同じ問題を持つ他の人のためにこれを追加しました
k3b

2

私の場合、デフォルトのjdkは1.7でしたが、更新されたjdkが含まれている正確なフォルダーを参照して、1.8に変更しました。


これは私のために働いた!バージョン1.8 jdkがインストールされ、ターゲットに設定されている必要があります
hewstone

1

同じ問題があり、バージョンを変更しようとしましたが、プロジェクト> Gradleスクリプト> build.gradle(Module:app)のAndroid Studioのバージョンの場合は、バージョンを変更できます。例えば:

android {
    compileSdkVersion **23**
    buildToolsVersion **"23.0.3"**

    defaultConfig {
        applicationId "com.example.android.myapplication"
        minSdkVersion **19**
        targetSdkVersion **23**
        versionCode **1**
        versionName **"1.0"**
    }

1

この質問。

使用しているIDEでコンパイラレベルを1.7に戻してみてください。

  • Eclipseを使用している場合は、Windows ---> Prefencesに移動し、Javaを選択して展開し、Compilerを選択して、コンプライアンスレベルを1.7に変更します。
  • Android Studioを使用している場合は、これをbuild.gradleに追加できます

    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"
    
        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 19
        }
    
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    }

これで問題が解決しない場合は、上記のリンクで他のユーザーの回答を確認して、何が役に立ったかをお知らせください。


1
私はMavenとIntelliJを使用しています。
Rafael Reyes

この場合、Mavenコンパイラプラグインの内部構成でソースとターゲットを1.7に変更できます
cristianorbs

1

Androidビルドツールが正しくインストールされていません。他のバージョンのビルドツールをインストールして、gradleファイルでそのバージョンを指定してください。または、このディレクトリに移動できます

C:\ Users \\ AppData \ Local \ Android \ sdk \ build-tools

インストールされているビルドツールを確認します。Gradleファイルでビルドツールのバージョンを変更し、アプリをコンパイルして、機能しているかどうかを確認してください。

私は22.0.1、23.0.02および24.0.0バージョンのビルドツールを持っていて、古い22.0.1バージョンのみが機能しました。

ソース:私は自分で試してみましたが、うまくいきました。


1

この問題は、ビルドツールのバージョンとJDKが一緒に機能しないことに起因します。ビルドツール24.0.1でJDKバージョン7を使用していました。もちろん、ビルドツールのバージョンを下げると問題が解決する可能性がありますが、ビルドツールを将来アップグレードすると再び問題が発生するため、実際の修正ではありません。

ビルドツールのバージョンとJDKが連携することを確認する必要があります。ビルドツールを最新(24.0.1)にアップグレードし、jdk8をインストールしました。JAVA_HOMEを必ず最新に設定してから、クリーンビルドを試してください。


1

コマンドラインからsdkを使用してCordova用にビルドしようとしたときに、Android Studio以外でも同じ問題が発生しました(cordova build android)。

Rudyが提供するソリューションは、この場合にも機能します。Android Studioからビルドツールのバージョンをダウングレードしないだけでなく、Android SDKマネージャーUIを使用してダウングレードします。


0

この問題が発生しました。

SDKツールとビルドツールの「プレビューチャネル」バージョンから最新の安定したバージョンに戻すことで修正されました。


0

私のためcom.android.tools.build:gradle:2.2.0-beta1com.android.tools.build:gradle:2.1.2修正するように変更します。

私のAndroid Studioのバージョンは2.1.2です。おそらくそれが理由です。


0

最も簡単な解決策は、JDKを最新バージョンに更新することです。Cordovaは最新のJDKのみをサポートしているためです。

まず、Android SDKを更新する必要があります。そして、

2.端末から更新できない場合は、Linux destroのソフトウェアセンターにアクセスし、最新(インストールするもの)を検索してインストールします。

次に、Cordova buildを再度実行ます。

それは問題を解決します。

私の場合はうまくいきました。


0

SDKインストールディレクトリに移動し、/ build-toolsサブディレクトリがbuildToolsVersionアプリのbuild.gradleファイル内のと一致していることを確認する必要があります。 ここに画像の説明を入力してください


0

C:\Program Files\Javaまたはのいずれかに最新バージョンのSDKがインストールされていることを確認します。C:\Program Files (x86)\Java

次にVS2015に移動し、パスツール-オプション-Xamarin-Android設定に従い、JDKの場所のセクションで変更を選択し、x64またはx32のいずれかのバージョンを探します。


0

私はコルドバにいます、これが私がやったことです:

-Androidプロジェクトの名前を変更して、新しいプロジェクト用のスペースを確保します
-JAVA開発キットを1.8に更新します(これを書いている時点で最新のもの)
-実行しますcordova platform add android

今は問題なく動作するはずです。アプリのハッシュが変わるので、facbeookログインに使用している場合は、更新する必要があります


0

私はこの問題をあまりにも長く抱えていて(SOなどは役に立たなかった)、それを解決しただけです(SDK 25を使用)。

-local.propertiesファイルのproguard.dir varがantで適用されていませんでした。5.3.2を指定しましたが、コマンドライン呼び出しと署名付きエクスポートビルド(Eclipse)がsdkディレクトリから4.7を使用していました(Java 8をサポートしているのは5+のみ)

私の解決策は、sdk内のproguard jar(android-sdk / tools / proguard / libsディレクトリ)を現在の(5+)バージョンのproguardで置き換えることでした。


0

unsupported-major-minor-versionエラーは、サポートされていないJDKバージョンが原因である可能性があります。JDKを更新し、モジュール設定に移動して、JDKパスを新しいパスに変更します。ほとんどの場合、それはエラーを修正します。


-1

2つのバージョンのjava jdkをインストールしました。「ファイル」->「プロジェクト構造」->「SDKの場所」で、Java jdkの正しいバージョンを、JAVA_HOME環境変数にある最新バージョンにポイントすると、問題は解消しました。


これは、Gradleを使用したコマンドラインビルドの問題を必ずしも解決するわけではありません。
IgorGanapolsky 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.