gpt4 book ai didi

java - 在 Xamarin.Android 上启用 Multi-Dex 时出现 "Compilation failed: Unknown option: --multi-dex"

转载 作者:太空宇宙 更新时间:2023-11-04 10:06:28 24 4
gpt4 key购买 nike

我正在为 Java SDK 构建 Xamarin 绑定(bind)。我设法构建它并将其部署在设备上。但是,我必须向库添加更多依赖项,并达到 Dalvik 可执行文件授权的最大 64k 方法。我决定通过应用程序的 Android Options 属性启用 Multi-Dex 以绕过该限制。

我现在在构建应用程序时遇到错误,并且在网络上找不到它的任何引用。

这是构建输出的示例:

3> C:\Program Files\Java\jdk1.8.0_181\bin\java.exe -Xmx1G -jar C:\Users\witol.nuget\packages\xamarin-android-d8-build\0.2.1\build\d8.jar --debug --multi-dex --main-dex-list=obj\Debug\MonoAndroid80\multidex.keep --output obj\Debug\MonoAndroid80\android\bin C:\Users\witol\source\repos\VoxeetBinding4\VoxeetBinding4Sample2\obj\Debug\MonoAndroid80\android\bin\classes.zip "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v8.0\mono.android.jar" "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Xamarin\Android\android-support-multidex.jar" obj\Debug\MonoAndroid80\lp\0\jl\eventbus-3.0.0.jar obj\Debug\MonoAndroid80\lp\10\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\11\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\12\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\13\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\14\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\15\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\16\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\17\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\18\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\19\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\20\jl\public-sdk-1.1.7.1.jar obj\Debug\MonoAndroid80\lp\20\jl__reference__adapter-rxjava-2.1.0.jar obj\Debug\MonoAndroid80\lp\20\jl__reference__guava-19.0.jar obj\Debug\MonoAndroid80\lp\20\jl__reference__jackson-annotations-2.7.0.jar obj\Debug\MonoAndroid80\lp\20\jl__reference__jackson-core-2.7.2.jar obj\Debug\MonoAndroid80\lp\20\jl__reference__jackson-databind-2.7.2.jar obj\Debug\MonoAndroid80\lp\20\jl__reference__logging-interceptor-3.4.0-RC1.jar obj\Debug\MonoAndroid80\lp\20\jl__reference__rxandroid-1.2.1.jar obj\Debug\MonoAndroid80\lp\20\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\21\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\22\jl\classes.jar obj\Debug\MonoAndroid80\lp\23\jl\classes.jar obj\Debug\MonoAndroid80\lp\24\jl\retrofit-2.1.0.jar obj\Debug\MonoAndroid80\lp\25\jl\okhttp3.jar obj\Debug\MonoAndroid80\lp\26\jl\rxjava-1.1.8.jar obj\Debug\MonoAndroid80\lp\27\jl\nv-websocket-client-2.3.jar obj\Debug\MonoAndroid80\lp\27\jl__reference__hamcrest-core-1.3.jar obj\Debug\MonoAndroid80\lp\27\jl__reference__junit-4.12.jar obj\Debug\MonoAndroid80\lp\28\jl\classes.jar obj\Debug\MonoAndroid80\lp\29\jl\classes.jar obj\Debug\MonoAndroid80\lp\3\jl\arch-core-common.jar obj\Debug\MonoAndroid80\lp\30\jl\okio.jar obj\Debug\MonoAndroid80\lp\31\jl\classes.jar obj\Debug\MonoAndroid80\lp\4\jl\arch-lifecycle-common.jar obj\Debug\MonoAndroid80\lp\5\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\6\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\8\jl\bin\classes.jar obj\Debug\MonoAndroid80\lp\9\jl\bin\classes.jar (TaskId:283)

3> Compilation failed: Unknown option: --multi-dex (TaskId:283)

3>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2521,3): error MSB6006: "java.exe" exited with code 1.

显然 java 可执行文件无法识别“--multid-dex”选项。

我尝试过的:

  • 更新我的 Android BuildTools
  • 从 SourceForge 下载最新的 ProGuard 版本
  • 尝试不同的 MinSdkVersion(19、21)
  • 创建新的 Android 应用项目

面向 API 级别 26 - Android 8.0 (Oreo)

MinSDkVersion 现已达到 Api 级别 22 - Android 5.1 (Lolipop)

更新:如果我创建另一个空白 Android 应用程序项目并启用 Multi-Dex 选项,它将正确构建。

最佳答案

供引用:

我安装了 NuGet 包“xamarin-android-d8-build”,它添加了对 Xamarin.Android 的 d8 编译器支持。这就是为什么它无法识别“--multi-dex”选项。

关于java - 在 Xamarin.Android 上启用 Multi-Dex 时出现 "Compilation failed: Unknown option: --multi-dex",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52850007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com