プロジェクトをEclipseからAndroid Studioに移動しています。アプリの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')
}
エラー:タスク ':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'
}
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
これは、次の理由による可能性があります。
プロジェクト内のjarファイルの1つは、古いバージョンのgoogle playサービスを使用していました。
defaultconfig
でmultiDexEnabled true
を使用します
依存関係に追加するクラスを具体的に指定してください。好む
'com.google.Android.gms:play-services-maps:8.4.0'をコンパイルします
コンパイルが好きではない'com.google.Android.gms:play-services:+'
これを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>
私はこれをより多くのプロジェクトで試してみましたが、うまくいきました。ソリューションがマルチデックス用にアプリを構成できることに注意してください:
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'
...
}
または、これを試すことができます-
Extend your Application class with MultiDexApplication instead of Application !
私はすべてを試しましたが、それでもJDKバージョンを変更になるまでこのエラーは続きません。
私のJDKバージョンは7でしたが、8に変更した後、エラーはなくなりました。他に何も機能しない場合は試してみてください。
私はこれを試してみましたが、うまくいきました。他の人にも役立つことを願っています。
ここに、物事を説明するスクリーンショットを添付しました。 この手順を実行
お力になれて、嬉しいです。
ありがとう。
@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)のものであるため、設定として編集してください。
名前クラスが重複しています
好む
class BackGroundTask extends AsyncTask<String, Void, Void> {
そして
class BackgroundTask extends AsyncTask<String, Void, Void> {
一時的な解決策は、以下のコードをモジュールbuild.gradle
に配置することです:
Android {
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
}
そして、プロジェクトを同期します。
私の場合、2つのプロジェクトA
とB
がありました。そして、gradle 4.5
にアップグレードしました。
A
はB
に依存していましたが、両方に3rd party jar
の参照がありました
このエラーが発生していました
com.Android.tools.r8.errors.CompilationError:プログラムタイプは既に存在します:com.mnox.webservice.globals.WebServiceLightErrorHashCode
既に存在するプログラムタイプ:com.mnox.webservice.globals.WebServiceLightErrorHashCode
修正するには
api
build.gradleファイルでB
を使用して、A
で参照されるようにしました。もう1つの根本的な原因は、gradle 4.5
にアップグレードし、コモンでimplementation
の代わりにapi
を使用した場合ですbuild.gradle
私にとっての解決策は、ホームディレクトリのgradleキャッシュフォルダー(.gradle/caches)を削除し、再度ビルドすることでした。おそらく、重複したクラスの読み込みの問題が原因です。
For Ionic 4 Just
$ cordova clean
それから私を助けた
$ ionic cordova run Android --device
他の人がファイルを調整することを提案している一方で、不足しているプラグイン(イオンフレームワーク)をインストールすることでこの問題を解決できたことに言及する価値があります。
うまくいけば誰かの助けになります。
cordovaプラグインはcordova-support-google-services --saveを追加します