2017-10-16 20 views
1

私はreact nativeで新しく、私はUbuntuで使用しています。私は自分のPCでプロジェクトを実行したいと思います。私は糸とアンドロイドエミュレータを使用しています。ここに私のインストールされたアプリケーションのバージョンです:タスク ':app:transformClassesWithDexForDebug'の実行に失敗しました。

yarn: 1.2.0 

nmp: 3.10.10 

使用しながら、私は、次のエラーを得た:ここ

$ react-native run-android 

はエラーです:

* What went wrong: 
    Execution failed for task ':app:transformClassesWithDexForDebug'. 
    > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException 

私はstackoverflowに存在する多くのソリューションをテストしていますしかし、それらのうちのどれも私のために働かなかった。以下のような:

Adding google services - Execution failed for task ':app:processDebugResources'

Error:Execution failed for task ':app:transformClassesWithDexForDebug' in android studio

私はまたGoogle play serviceを使用して、私はFirebaseプラグインをインストールしています。 私は何をすべきか考えていますか?

+0

あなたのAndroidManifest.xmlファイルを共有することができます修正する方法としてだけでなく、発生しましたか? – wizloc

+0

@wizloc:お返事ありがとうございます。私のプロジェクトでどこで見つけることができますか?それはプロジェクトの現在の道ですか?私はそれを見つけることができませんでした!私はプロジェクトが他のPCで完全に働いていたことを言及する必要があります! – Queen

+0

android/app/src/main/AndroidManifest.xml。具体的には、私は 'android:minSdkVersion'フィールド値が何であるか不思議です。私の推測は16ですか? – wizloc

答えて

2

あなたは64kの参照制限を超えており、マルチディレーティングを有効にする必要があります。リンクした2番目の記事はこれを解決する方法を参照しましたが、多くの反応ネイティブプロジェクトはminSdkVersion 16で初期化されるため、multidexを有効にする追加ステップがあります。あなたには2つの選択肢があります。

オプション1:

は、あなたのAndroidManifest.xmlファイル(アンドロイド/アプリ/ srcに/メイン/ AndroidManifest.xmlを)また、あなたのbuild.gradleファイル(アンドロイド/アプリ/ビルドに21に自分のminSdkVersionがアップグレード.gradle)、その後、あなたのbuild.gradleファイルに次の行でtrueにmultiDexEnabledを追加

android { 
    defaultConfig { 
     ... 
     minSdkVersion 21 
     targetSdkVersion 26 
     multiDexEnabled true 
    } 
    ... 
} 

オプション2:

あなたはminSdkVersionが16に滞在する必要がある場合

:あなたのbuild.gradleファイルでtrueにmultiDexEnabled設定し、その後、

dependencies { 
    compile 'com.android.support:multidex:1.0.1' 
    ...(your other dependencies here) 
} 
その後

あなたはApplicationクラスをオーバーライドするかどうかに応じて、次のいずれかを実行し、同じファイルに「依存関係」の下で、この行を追加します。

あなたは、Applicationクラスを上書きアンドロイド設定するためにマニフェストファイルを編集していない場合は、次のようにタグに名前を:

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

あなたはアンドロイド/アプリ/ srcに/メイン/ Javaでアプリケーションクラスをオーバーライドしない場合/ MainApplication.java、MultiDexApplicationを拡張するように変更する(次のように)可能な場合:

ここ
public class MyApplication extends MultiDexApplication { ... } 

何このエラー手段にAndroidのドキュメントであり、なぜそれがhttps://developer.android.com/studio/build/multidex.html

+0

あなたの答えをありがとうが、それは私に同じエラーを与えました。 :( – Queen

+0

あなたのアンドロイド/ app/build.gradleファイルをコピーして貼り付けることができたら、私はもう一度 – wizloc

+0

と答えて、上のanwserと答えを混ぜ合わせて、最後に修正することができました。ありがとうございます:) – Queen

関連する問題