Gradle Can';t将Gluon Mobile编译为iOS

Gradle Can';t将Gluon Mobile编译为iOS,gradle,gluon,gluon-mobile,robovm,Gradle,Gluon,Gluon Mobile,Robovm,最近,我一直在自定义gluon charm down插件的方向作为问题,当我用新项目(在MacOS上)测试它时,它正在工作。但当我将它集成到现有的项目(最初在窗口环境下开发)中时,它在尝试/gradlew--info createIpa时出错 ,它显示以下错误 ` 任务“:CashmagIDApp:createIpa”的执行失败 java.io.IOException:文件不是存档文件:/Users/sovandara/.gradle/caches/modules-2/files-2.1/com

最近,我一直在自定义gluon charm down插件的方向作为问题,当我用新项目(在MacOS上)测试它时,它正在工作。但当我将它集成到现有的项目(最初在窗口环境下开发)中时,它在尝试
/gradlew--info createIpa时出错
,它显示以下错误

` 任务“:CashmagIDApp:createIpa”的执行失败

java.io.IOException:文件不是存档文件:/Users/sovandara/.gradle/caches/modules-2/files-2.1/com.android.support/support-v4/26.1.0/444114b772e5eee36f9236ace4acc1964a33b8/support-v4-26.1.0.aar `

我找不到任何与这个问题有关的信息。请任何人帮助我或给我线索,以找到问题的根本原因

已编辑

build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.3.16'
    }
}

apply plugin: 'org.javafxports.jfxmobile'
apply from: 'ios-build.gradle'

task xcodebuild {
    doLast {
        xcodebuildIOS("$project.buildDir","$project.projectDir", "CMOrientation")
    }
}

task installNativeLib (type:Copy, dependsOn: xcodebuild) {
    from("$project.buildDir/native")
    into("src/ios/jniLibs")
    include("*.a")
}

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}


mainClassName = 'fr.cashmag.cashmagid.CashmagIdMain'
ext.GLUON_VERSION="5.0.2"
ext.CHARM_DOWN="3.8.6"

dependencies {
    //gluon Version
    compile "com.gluonhq:charm:$GLUON_VERSION"
    //Gluon Charm-Down Version
    compile "com.gluonhq:charm-down-plugin-device:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-browser:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-desktop:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-android:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-ios:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-orientation:$CHARM_DOWN"
    //Zxing Library for Generate Barcode/QRCODE
    compile 'com.google.zxing:core:3.3.3'
}

jfxmobile {
    downConfig {
        version = '3.8.6'
        // Do not edit the line below. Use Gluon Mobile Settings in your project context menu instead
        plugins 'display', 'lifecycle', 'statusbar', 'storage','device','browser','orientation'
    }
    android {
        manifest = 'src/android/AndroidManifest.xml'
    }
    ios {
        infoPList = file('src/ios/Default-Info.plist')
        forceLinkClasses = [
                'fr.cashmag.cashmagid.**.*',
                'com.gluonhq.**.*',
                'javax.annotations.**.*',
                'javax.inject.**.*',
                'javax.json.**.*',
                'org.glassfish.json.**.*'
        ]
    }
}


在发布的生成中,您有:

dependencies {
    ...
    //Gluon Charm-Down Version
    compile "com.gluonhq:charm-down-plugin-device:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-browser:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-desktop:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-android:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-ios:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-orientation:$CHARM_DOWN"

}
然后你还有:

jfxmobile {
    downConfig {
        version = '3.8.6'
        plugins 'display', 'lifecycle', 'statusbar', 'storage','device','browser','orientation'
    }
这意味着您要添加两个插件
device
browser
display
,因为
jxmobile
插件将通过
downConfig
为您管理这些插件。这就是为什么像
存储
这样的插件可以工作,而不需要显式地添加到
依赖项

不管怎样,这应该不是什么问题

但是,问题(运行iOS任务时存在Android依赖项)来自
显示
依赖项:

    compile "com.gluonhq:charm-down-plugin-display-desktop:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-android:$CHARM_DOWN"
    compile "com.gluonhq:charm-down-plugin-display-ios:$CHARM_DOWN"
如您所见,您正在将
显示
服务的平台实现添加为
编译
依赖项,这意味着这些将适用于所有平台:Android依赖项(Android SDK,support.aar,…)将用于桌面和iOS,这显然不起作用

如前所述,实际上根本不需要包含它们,因此从
dependencies{}
中删除所有Charm-Down引用将解决您的问题

但是,如果您仍然需要包含它们,比如您将包含来自定制服务的依赖项,而不是Charm Down,那么您必须使用该平台:

    desktopCompile "com.gluonhq:charm-down-plugin-display-desktop:$CHARM_DOWN"
    androidCompile "com.gluonhq:charm-down-plugin-display-android:$CHARM_DOWN"
    iosCompile "com.gluonhq:charm-down-plugin-display-ios:$CHARM_DOWN"
现在,这些平台依赖项中的每一个都将仅对设计的平台可用


如果您感兴趣,
jxmobile
插件定义了
androidCompile
和其他文件。

您可以发布build.gradle文件(或其中的一部分,如插件版本和依赖项)吗?你不应该把Android依赖项和iOS依赖项混在一起。我编辑了我的问题。我不知道这与发行的那本书有什么关系。只有当我执行与iOS相关的操作时,才会发生这种情况。Android/桌面运行良好。也许我误解了你的解释,嗯,这是一个(误导性的)插件在引擎盖下的解释。我会修好的。谢谢你指出这一点。