エラー
エラー:タスク ':app:transformClassesWithDexForDebug'の実行に失敗しました。 com.Android.build.transform.api.TransformException:com.Android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:プロセス 'command'/usr/lib/jvm/Java-8-Oracle/bin/Java ''が0以外の終了値1で終了しました
私のアプリgradleファイル:
apply plugin: 'com.Android.application'
apply plugin: 'com.google.gms.google-services'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId 'Hidden application ID'
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
disable 'InvalidPackage'
}
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
productFlavors {
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:multidex:1.0.1'
compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:design:23.1.1'
compile 'com.Android.support:cardview-v7:23.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.google.Android.gms:play-services:8.1.0'
compile 'com.facebook.Android:facebook-Android-sdk:4.7.0'
compile 'com.googlecode.libphonenumber:libphonenumber:7.2.1'
compile 'com.getbase:floatingactionbutton:1.10.1'
compile 'com.Android.support:preference-v7:23.1.1'
}
デバッグ中にminifyEnabledをtrueに設定するとコンパイルされます。しかし、それから私は私のアプリケーションをデバッグすることはできません。
私はこの他の質問をチェックしました: タスク ':app:transformClassesWithDexForDebug'の実行に失敗しました。Android用のGoogleサインインの実装中 、回答と実装は1つだけです。残念ながら問題は解決しません。
私の知る限りでは、エラーはGradle依存関係が多すぎることが原因です。
このエラーを解決するために私を助けてください。どうもありがとうございます。
Google Playサービスの依存関係を修正するだけです。
あなたはあなたのプロジェクトにすべてのプレイサービスを含めています。必要なものだけを追加してください。
たとえば、マップとg +サインインのみを使用している場合は、
compile 'com.google.Android.gms:play-services:8.1.0'
に
compile 'com.google.Android.gms:play-services-maps:8.1.0'
compile 'com.google.Android.gms:play-services-plus:8.1.0'
ドキュメントから:
6.5より前のバージョンのGoogle Playサービスでは、APIのパッケージ全体をアプリにコンパイルする必要がありました。場合によっては、そうすることで、アプリ内のメソッド数(フレームワークAPI、ライブラリメソッド、および独自のコードを含む)を65,536個以下に抑えることがより困難になります。
バージョン6.5からは、代わりにGoogle PlayサービスAPIを選択してアプリにコンパイルすることができます。たとえば、Google FitおよびAndroid Wear APIのみを含めるには、build.gradleファイルの次の行を置き換えます。
'com.google.Android.gms:play-services:8.3.0'をコンパイルします
これらの行で'com.google.Android.gms:play-services-fitness:8.3.0'をコンパイルします。
'com.google.Android.gms:play-services-wearable:8.3.0'をコンパイルします
やってみる
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
}
理由はわかりません。 preDexLibraries
についての何か: https://sites.google.com/a/Android.com/tools/tech-docs/new-build-system/tips
@ lgdroid57によると:
次のリソースは、このコードが何をするのかを説明するのに役立ちます:link( http://google.github.io/Android-gradle-dsl/current/com.Android.build.gradle.internal.dsl。 DexOptions.html )プロパティ|説明javaMaxHeapSize | dxを呼び出すときに-JXmx *値を設定します。フォーマットは1024Mパターンに従う必要があります。 preDexLibraries |ライブラリを事前にdexするかどうか。これはインクリメンタルビルドを向上させることができますが、クリーンビルドは遅くなるかもしれません。
アプリのmultiDexEnabled true
ファイルにbuild.gradle
を追加してみてください。
defaultConfig {
multiDexEnabled true
}
これがMultidexに関する問題です。あなたはいくつかのjarファイルを削除しようとすることができます、またはあなたはこのように試すことができます。 http://developer.Android.com/tools/building/multidex.html#mdex-gradle アプリのビルド。グラドル:
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
dependencies {
compile 'com.Android.support:multidex:1.0.0'
}
あなたのマニフェストでは:
<?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>
このようにmultiDexEnabled true
のdefault config file
にbuild.gradle
を追加する
defaultConfig {
multiDexEnabled true
}
個人的に私のために働いた解決策は次のとおりです。
build.gradle
内
defaultConfig {
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
私の応答は少し古いですが、私のための唯一の解決策は、次のようにdefaultConfigにmultiDexEnabledオプションを追加することでした:
Android{
...
defaultConfig{
...
multiDexEnabled true
}
}
これでうまくいかない場合は、次のコードを追加してみてください。
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.Android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
}
}
}
私のエラーは、さまざまなライブラリのバージョンの問題に関連していたため、これがトリックでした。
これが誰かに役立つことを願っています:)
Googleサービスの2つのバージョンを使用していないことを確認してください。
例えば:
compile 'com.google.firebase:firebase-messaging:9.8.0'
そして
compile 'com.google.firebase:firebase-ads:10.0.0'
私はそれを解決しました!これは設定とアップデートの集まりです。 build.gradleに収まるところにこれらの変数を追加します。
Android {
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
multiDexEnabled true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
それからJava 8 http://tecadmin.net/install-Oracle-Java-8-jdk-8-ubuntu-via-ppa/
に更新すれば、すべて解決されます。それはbuildTools
アップデートと新しいAndroidスタジオのためです。他に何も失敗しません。
イオンを使用して、私はコマンドを使用してこのエラーを修正することができました: "cordova clean"
考えられるヘルプ
他のすべてのオプションを使い果たした後の絶対的な最後の手段として試みました
メモリスティック(RAM)を1つだけ取り外しました。私は今より少ない記憶を持っています、しかしそれは再び働いています。ビルドプロセスが常に破損したメモリを見つけたのか、それが100%根本原因であるのかを知ることはできません。他の点ではシステムは正常に動作しました。たぶん、これは試してみるべきもので、幸運を祈ります。
Android Studioが示唆しているように、Gradleプラグインをバージョン1.2.3から1.5.0に更新したときに、この問題が発生しました。その Webページ では、1.5.0がベータ版のようです。
正直なところ、私はバージョン1.5.0がどんな利点を持っているかわかりません、しかし私はむしろ安定したバージョンがあるまで待ちたいです。
もちろん、1.2.3に戻って問題は解決しました。
ビルドに入る - >
クリーンプロジェクト - >
プロジェクトを実行:完了
私のためにAndroid 5.1に取り組んで
私は他のすべてのAndroid Studioを閉じて問題を解決しました。
エラーが発生したときに3つのAndroidスタジオを開いていましたが、2を閉じてもエラーが発生しませんでした。
MultiDexに関連するコードを追加する必要はありません。
変えることによって
「com.google.Android.gms:play-services:8.1.0」をコンパイルします。
この問題はbuild.gradleファイルのファイル数が多すぎるために発生します。
[ビルド] - > [クリーン]をクリックして、アプリをもう一度実行します。
マルチテックスは必要ありません。 Android Studio 2.1で開かれた "古い"プロジェクトの場合、gradleプラグインのバージョンを1.5.0から2.1.0に変更することで問題が解決しました。
buildscript {
dependencies {
classpath 'com.Android.tools.build:gradle:2.1.0'
}
}
適用プラグインの宣言をファイルの末尾に移動します。
プラグインを適用する: 'com.google.gms.google-services'
私は同じようなエラーがありました。ディレクトリを切り替えるだけで修正できました。自分のgitリポジトリから自分のプロジェクトを再度クローンし、それをAndroid Studioにインポートしてビルドします。プロジェクトのビルド時にAndroid Studioによって生成されたディレクトリ/ファイルの1つが破損している可能性があります。プロジェクト内のすべてのAndroid Studioで生成されたファイルを削除するか、または私がしたことを行うことで問題を解決できます。お役に立てれば。
AndroidデバイスでIonicプロジェクトを実行しているときにこのエラーが発生し、Androidプラットフォームを削除して追加することで解決しました。
ionic cordova platform remove Android
ionic cordova platform add Android
この問題に直面したことのあるすべての人にとって、将来的に直面するでしょう。
[ビルド]メニュー - > [ビルドバリアントの選択] - > [デバッグ]への復元をクリックします。
モジュール内のdebuggableに関するコメント:app/* debug {debuggable true} * /
[ビルド]メニュー - >署名付きapkの生成 - > .... - > [ビルド]をクリックします。
どうやら私はAndroidのマニフェストに以下を追加するすべてのソリューションを組み合わせることで問題を解決しました:
<application
...
Android:name="Android.support.multidex.MultiDexApplication" >
...
</application>
Build.gradleアプリモジュールのフォロー
Android {
...
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
}
...
defaultConfig {
multiDexEnabled true
}
}
私はただきれいにして、そしてプロジェクトを再構築してエラーが消えた
コンパイルタスクをSSH経由で Google Compute Engine に委任すると、この問題が発生しました。この問題の性質は、クラッシュログに示されているメモリエラーです。具体的には、Javaがビルド中に動作する仮想メモリを使い果たすとスローされます。
重要:このメモリエラーのためにgradleがクラッシュする場合、コンパイルタスクが失敗した後もgradleデーモンは実行を続けます。 gradleを使用してビルドを再試行すると、新しいgradleデーモンが割り当てられます。あなたはmustを使用して、クラッシュしたインスタンスを適切に破棄するようにしますgradlew --stop
。
hs_error_pid
クラッシュログは、次の回避策を示しています。
# There is insufficient memory for the Java Runtime Environment to continue.
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
仮想マシンのランタイムリソースを増やす の後、この問題は解決されました。
/Android
と/Android/app
の両方のbuild
フォルダーを削除するだけです。
そしてreact-native run-Android
で再度ビルドしてください