簡體   English   中英

Facebook SDK與Android Studio集成

[英]Facebook SDK integration with Android Studio

我正在嘗試將Facebook SDK集成到我的android項目中,但無法這樣做。 我已按照facebook文檔中提到的步驟操作。 但我得到的錯誤是 -

FAILURE:構建因異常而失敗。

* What went wrong:
Execution failed for task ':dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Applications/Android Studio.app/sdk/build-tools/19.1.0/dx --dex --num-threads=4 --output /Volumes/Data/projects/project_name/build/intermediates/dex/debug /Volumes/Data/projects/project_name/build/intermediates/classes/debug /Volumes/Data/projects/project_name/build/intermediates/dependency-cache/debug /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/bolts-57446fde6c024f562e020fd9e003407a5fc2a578.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/bugsense-3.5-8ab33d75af263f7f86f49230e10099a1c2c9a549.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/classes-0523eab2b91bd947bf3140cde551a15ef204bab4.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/classes-1bf58233e09b0ba3df3b170e5976ea8835ce9dbc.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/classes-50cb56f46834855caa39a5bee8fee3da46d5c1eb.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/classes-5656b1a26fb9cf46c5e761b517ec752c47e7afe7.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/classes-d98d71fc376b8658355216fd82eb5433791f3b1d.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/custom-linkedin-j-android-46399e5197dc53ee00e0370db8440536b745b26a.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/droidText.0.5-809fa4af200fcd621ea1d4d33c187c85ccfb4721.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/gson-2.2.4-1f9beaae96795dd030e7971a8a89b53987904e64.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/libGoogleAnalyticsServices-969197b4a3de6e6538e72f3e6d598b94488ccd57.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/Parse-1.5.0-e86e2456aff7f83bdad45e275836d6a3e12c84c9.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/signpost-commonshttp4-1.2.1.1-ad7399087713b6c6e45b1e45950da833fcc81870.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/signpost-core-1.2.1.1-50384ca3c3962abba499d71f329139d20bac4475.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/signpost-jetty6-1.2.1.1-96a3b59a9846e0434e4213c2f1c063549d7f2b83.jar /Volumes/Data/projects/project_name/build/intermediates/pre-dexed/debug/support-v4-19.0.1-3bf117e59e2e0f41bbf9219f2be90cdcf1dd583d.jar
  Error Code:
    2
  Output:

    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Cannot merge new index 67781 into a non-jumbo instruction!
        at com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:108)
        at com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:25)
        at com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:71)
        at com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)
        at com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)
        at com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:48)
        at com.android.dx.merge.DexMerger.transformCode(DexMerger.java:840)
        at com.android.dx.merge.DexMerger.transformMethods(DexMerger.java:811)
        at com.android.dx.merge.DexMerger.transformClassData(DexMerger.java:783)
        at com.android.dx.merge.DexMerger.transformClassDef(DexMerger.java:680)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:540)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
        at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
        at com.android.dx.command.dexer.Main.run(Main.java:230)
        at com.android.dx.command.dexer.Main.main(Main.java:199)
        at com.android.dx.command.Main.main(Main.java:103)

這是我的Facebook gradle文件

dependencies {
    compile 'com.android.support:support-v4:13.0.0'
    compile files('libs/bolts.jar')
}

這是我的項目gradle文件

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':libraries:actionbarsherlock')
    compile project(':libraries:sliding-menu')
    compile project(':libraries:cwac-touchlist')
    compile files('libs/Parse-1.5.0.jar')
    compile 'com.bugsense.trace:bugsense:3.5'
    compile files('libs/gson-2.2.4.jar')
    compile project(':facebook')
}

有什么建議嗎? 如果您需要任何其他信息,請與我們聯系。

您可以檢查是否再次導入相同的JAR。 假設,jar中有一個類正在另一個jar中導入。 所以只需檢查是否包含兩次lib / class文件。

或者如果您只是導入一些jar文件,您可以嘗試刪除它們,並一次添加一個,以查看它們中的哪一個發生錯誤。 在我的情況下,我做到了這一點,當我導入最后一個時,應用程序確實編譯。 所以我想,我可能一次導入很多人,這才是真正的問題。 但現在一切正常。

Android應用程序有一個構建步驟,其中dex工具獲取Java類文件並將其轉換為Android設備可以直接運行的格式。 輸出文件格式存在限制,其中一個限制是文件可以包含的字符串數量限制,除非將選項設置為打開“巨型模式”。 您可以將標志設置為打開jumbo模式,這可能會幫助您解決此錯誤,但請注意您可能也接近其他限制(特別是,您的應用程序中可能存在的方法總數有限制) ,除非你把它拆分成多個dex文件)。 如果您看到未來的錯誤,請按照這些方針進行一些研究。

無論如何,要啟用jumbo模式,請嘗試將其放在具有錯誤的模塊的build.gradle文件的android塊中:

dexOptions {
    jumboMode = true
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM