2017-10-16 88 views
1

我是react native中的新成員,我在Ubuntu中使用它。我想在我的電腦上運行一個項目。我使用yarn和android模擬器。這是我安裝的應用程序版本:作爲反應原生的任務':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的參考限制,需要啓用多重分解。您鏈接的第二篇文章引用瞭如何解決這個問題,但許多反應本機項目使用16的minSdkVersion進行初始化,因此需要額外一步來啓用multidex。你有兩個選擇。

選項1:

升級你的minSdkVersion至21日在AndroidManifest.xml檔案(Android設備/應用/ src目錄/主/ AndroidManifest.xml中),並您的build.gradle文件(Android設備/應用/編譯.gradle),然後在您的build.gradle文件中添加multiDexEnabled真在這行

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

選項2:

如果你需要留在的minSdkVersion 16設置multiDexEnabled到真正在你的build.gradle文件,然後在同一文件中加入這一行「依賴」下

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

然後根據您是否重寫應用程序類,請執行下列操作之一:

如果不重寫應用程序類,編輯清單文件設置機器人:在標籤名稱如下:

<?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> 

如果你覆蓋android系統/應用程序的應用程序類/ src目錄/主/ JAVA/MainApplication.java,將其更改爲擴展MultiDexApplication(如果可能的話),如下所示:

public class MyApplication extends MultiDexApplication { ... } 

下面是Android上的這個錯誤是什麼手段文檔以及爲什麼它會發生,以及如何解決它https://developer.android.com/studio/build/multidex.html

+0

謝謝你的回答,但是,它給了我同樣的錯誤。 :( – Queen

+0

如果你可以複製並粘貼你的android/app/build.gradle文件,我可以再看看 – wizloc

+0

混合你的答案和上面的anwser之一,最後我可以修復它。非常感謝。:) – Queen

相關問題