web-dev-qa-db-ja.com

エラー:Android studioのタスク ':app:transformClassesWithDexForDebug'の実行に失敗しました

プロジェクトをEclipseからAndroid St​​udioに移動しています。アプリの1つを実行しているときに、次のエラーが表示されます。解決策が見つかりません。マルチデックスも有効にしました。

エラー:タスク ':app:transformClassesWithDexForDebug'の実行に失敗しました。 com.Android.build.api.transform.TransformException:Java.lang.RuntimeException:com.Android.ide.common.process.ProcessException:Java.util.concurrent.ExecutionException:com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:プロセス 'command' C:\ Program Files\Java\jdk1.7.0_79\bin\Java.exe ''が終了値0以外で終了しました1

また、私のgradleファイルは以下です

apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
    applicationId "com.myapp"
    minSdkVersion 9
    targetSdkVersion 21
    multiDexEnabled true
}buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard- Android.txt'), 'proguard-project.txt', 'proguard-google-api-client.txt'
     }
   }
 }
 dependencies {
 compile 'com.Android.support:support-v4:23.4.0'
 compile 'com.google.Android.gms:play-services:+'
 compile 'com.google.http-client:google-http-client-gson:1.20.0'
compile 'com.google.code.gson:gson:2.1'
compile 'com.Android.support:appcompat-v7:23.4.0'
compile files('libs/activation.jar')
compile files('libs/additionnal.jar')
compile files('libs/Android-support-v7-cardview.jar')
compile files('libs/Android-support-v7-recyclerview.jar')
compile files('libs/commons-logging-1.1.1.jar')
compile 'com.google.api-client:google-api-client:1.18.0-rc'
compile 'com.google.api-client:google-api-client-Android:1.18.0-rc'
compile 'com.google.api-client:google-api-client-appengine:1.18.0-rc'
compile 'com.google.http-client:google-http-client:1.18.0-rc'
compile 'com.google.http-client:google-http-client-Android:1.18.0-rc'
compile 'com.google.http-client:google-http-client-appengine:1.18.0-rc'
compile 'com.google.oauth-client:google-oauth-client:1.18.0-rc'
compile 'com.google.oauth-client:google-oauth-client-appengine:1.18.0-rc'
compile files('libs/google-api-client-gson-1.18.0-rc.jar')
compile files('libs/google-api-client-jackson2-1.18.0-rc.jar')
compile files('libs/google-api-client-Java6-1.18.0-rc.jar')
compile files('libs/google-api-client-servlet-1.18.0-rc.jar')
compile files('libs/google-http-client-jackson2-1.18.0-rc.jar')
compile files('libs/google-http-client-jdo-1.18.0-rc.jar')
compile files('libs/google-oauth-client-Java6-1.18.0-rc.jar')
compile files('libs/google-oauth-client-jetty-1.18.0-rc.jar')
compile files('libs/google-oauth-client-servlet-1.18.0-rc.jar')
compile files('libs/GraphView-4.0.1.jar')
compile files('libs/httpclient-4.0.1.jar')
compile files('libs/httpcore-4.0.1.jar')
compile files('libs/jackson-core-2.1.3.jar')
compile files('libs/jetty-6.1.26.jar')
compile files('libs/jetty-util-6.1.26.jar')
compile files('libs/jsr305-1.3.9.jar')
compile files('libs/jxl.jar')
compile files('libs/mail.jar')
compile files('libs/transaction-api-1.1.jar')
 }
34
user1938357

エラー:タスク ':app:transformClassesWithDexForDebug'の実行に失敗しました。 com.Android.build.api.transform.TransformException:Java.lang.RuntimeException:com.Android.ide.common.process.ProcessException:Java.util.concurrent.ExecutionException:com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:プロセス 'command' C:\ Program Files\Java\jdk1.7.0_79\bin\Java.exe ''が終了値0以外で終了しました1

多くの理由により、上位のエラーが発生しました。だから私はこのエラーが発生した理由とそれを解決する方法を置くことができます。

理由1:クラスファイル名の重複

解決策:

クラスファイルの一部をライブラリプロジェクトにリファクタリングするとき。クラスファイルの名前を書くときは、重複した名前がないことを再確認してください

理由2:キャッシュメモリが多い場合

解決策:

キャッシュメモリがたくさんある場合は、このエラーが発生することがあるため、解決してください。 File/Invalidate caches / Restartに移動してInvalidate and Restartを選択すると、キャッシュメモリが消去されます。

理由3:内部バグがある場合、またはベータ版を使用して安定バージョンに切り替える場合。

解決策:

解決方法は簡単です。[ビルド]メニューに移動して[Clean Project]をクリックし、クリーニング後にRebuild Projectをクリックします。

理由4:システム構成のメモリが少ない場合。

解決策:

タスクマネージャーを開き、その時点で最も使用されていない他のアプリケーションを停止して、スペースを解放し、OutOfMemoryを解決します。

理由5:問題は、メソッドカウントが65Kを超えていることです。

解決策:

プロジェクトを開くbuild.gradleファイルの追加

defaultConfig {
        ...
        multiDexEnabled true
    }

依存関係では、以下の行を追加します。

dependencies 
    {
       compile 'com.Android.support:multidex:1.0.0'
    }
67
Ironman

**私の場合、Instant Run DISABLEで問題が解決しました** enter image description here

10
Md. Ibrahim

build.gradle(app level)で、multidexが有効かどうかを確認します

dependecies{
multidexEnabled true
}

あなたのgradle.properties(アプリレベル)を確認してください。以下のコードが表示されたら

#org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

行の前の#を削除すると、次のようになります

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
8
Trinadh Koya

これは、次の理由による可能性があります。

  1. プロジェクト内のjarファイルの1つは、古いバージョンのgoogle playサービスを使用していました。

  2. defaultconfigmultiDexEnabled trueを使用します

  3. 依存関係に追加するクラスを具体的に指定してください。好む

    'com.google.Android.gms:play-services-maps:8.4.0'をコンパイルします

コンパイルが好きではない'com.google.Android.gms:play-services:+'

4
Dipali s.

これをgradleファイルに追加してください

Android {
...
defaultConfig {
    ...
    multiDexEnabled true
    }
}

また、あなたのgradleに以下の依存関係を追加します

dependencies {
  compile 'com.Android.support:multidex:1.0.1'
}

または、別のオプションは次のとおりです。マニフェストファイルで、アプリケーションタグのmultidexサポートライブラリからMultiDexApplicationパッケージを追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.Android.multidex.myapplication">
    <application
        ...
        Android:name="Android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>
4
Naina

私はこれをより多くのプロジェクトで試してみましたが、うまくいきました。ソリューションがマルチデックス用にアプリを構成できることに注意してください:

Android {
     compileSdkVersion 25
     buildToolsVersion "25.0.1"

     defaultConfig {
           ...
           minSdkVersion 9
           targetSdkVersion 25
     }

     buildTypes {
          release {
              shrinkResources true
              minifyEnabled true
              proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
          }
     }}

 dependencies {
       compile 'com.Android.support:support-v4:25.1.0'
       compile 'com.google.Android.gms:play-services:8.3.0'
       ...
 }
1
medaou

または、これを試すことができます-

Extend your Application class with MultiDexApplication instead of Application !
1
mayur saini

私はすべてを試しましたが、それでもJDKバージョンを変更になるまでこのエラーは続きません。

私のJDKバージョンは7でしたが、8に変更した後、エラーはなくなりました。他に何も機能しない場合は試してみてください。

1

私はこれを試してみましたが、うまくいきました。他の人にも役立つことを願っています。

  1. Build.gradleモジュールファイルを開きます
  2. sdkversionを25から24または23にダウングレードします
  3. 'multiDexEnabled true'を追加します
  4. この行をコメント: 'com.Android.support:appcompat-v7:25.1.0'をコンパイルします(「依存関係」にある場合)
  5. プロジェクトを同期して、すぐに使用できます。

ここに、物事を説明するスクリーンショットを添付しました。 この手順を実行

お力になれて、嬉しいです。

ありがとう。

1
user3116317

@Ironmanの完全な回答に感謝しますが、この問題に直面した経験に応じてソリューションを追加する必要があります。

Build.gradleで(モジュール:アプリ):

compile 'com.Android.support:multidex:1.0.1'

    ...

    dexOptions {
            javaMaxHeapSize "4g"
        }

    ...

    defaultConfig {
            multiDexEnabled true
    }

また、次をgradle.propertiesファイルに追加します。

org.gradle.jvmargs=-Xmx4096m -XX\:MaxPermSize\=512m -XX\:+HeapDumpOnOutOfMemoryError -Dfile.encoding\=UTF-8

これらの数字はラップトップの設定(16 GB RAMを搭載したMacBook Pro)のものであるため、設定として編集してください。

1
Shayan Amani

名前クラスが重複しています

好む

class BackGroundTask extends AsyncTask<String, Void, Void> {

そして

class BackgroundTask extends AsyncTask<String, Void, Void> {
1

一時的な解決策は、以下のコードをモジュールbuild.gradleに配置することです:

Android { 
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
}

そして、プロジェクトを同期します。

1
Mirza715

私の場合、2つのプロジェクトABがありました。そして、gradle 4.5にアップグレードしました。

ABに依存していましたが、両方に3rd party jarの参照がありました

このエラーが発生していました

com.Android.tools.r8.errors.CompilationError:プログラムタイプは既に存在します:com.mnox.webservice.globals.WebServiceLightErrorHashCode

既に存在するプログラムタイプ:com.mnox.webservice.globals.WebServiceLightErrorHashCode

修正するには

  1. 重複したjarファイルを削除しました
  2. api build.gradleファイルでBを使用して、Aで参照されるようにしました。

もう1つの根本的な原因は、gradle 4.5にアップグレードし、コモンでimplementationの代わりにapiを使用した場合ですbuild.gradle

0
Siddharth

私にとっての解決策は、ホームディレクトリのgradleキャッシュフォルダー(.gradle/caches)を削除し、再度ビルドすることでした。おそらく、重複したクラスの読み込みの問題が原因です。

0
Trace

私の設定のスクリーンショット: image

この投稿 に感謝します。

設定でインスタントランをオフにするだけです。私が示したように、キーワード「instant」を簡単に検索でき、必要なウィンドウに切り替わります。

0
刘睿博

For Ionic 4 Just

$ cordova clean

それから私を助けた

$ ionic cordova run Android --device
0
Code Spy

他の人がファイルを調整することを提案している一方で、不足しているプラ​​グイン(イオンフレームワーク)をインストールすることでこの問題を解決できたことに言及する価値があります。

うまくいけば誰かの助けになります。

cordovaプラグインはcordova-support-google-services --saveを追加します

0
siege