首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaFXPorts中更改JavaFXPorts不起作用

在JavaFXPorts中更改JavaFXPorts不起作用
EN

Stack Overflow用户
提问于 2018-07-02 00:43:54
回答 1查看 159关注 0票数 1

对于Android的最低限度sdk,我有一个奇怪的问题。由于某些原因,build.gradle内部的更改不会影响项目的编译

对于许多方法,我会收到以下警告:

代码语言:javascript
复制
defining a default interface method requires --min-sdk-version >= 24 (currently 13)

因此,我得到以下错误:

代码语言:javascript
复制
Too many classes in --main-dex-list, main dex capacity exceeded

这真的很烦人,因为我已经更改了最低要求。

build.gradle:

代码语言:javascript
复制
buildscript {
    repositories {
        jcenter()
        google()
        maven {
            url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
        }
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:2.0.8'
    }
}

apply plugin: 'scala'
apply plugin: 'org.javafxports.jfxmobile'

configurations {
    scalaCompiler
}
configurations.scalaCompiler.transitive = false

compileScala.targetCompatibility = "1.8"

mainClassName = 'sfxml.Main'

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

dependencies {
    compile('org.scala-lang:scala-library:2.12.6'){transitive = false}
    compile(group: 'org.scalafx', name: 'scalafx_2.12', version: '8.0.144-R12'){transitive = false}
    compile group: 'org.scalafx', name: 'scalafxml-core-sfx8_2.12', version: '0.4'

    scalaCompiler "org.scalamacros:paradise_2.12.6:2.1.1"

//    testCompile group: 'junit', name: 'junit', version: '4.12'
}

String scalaCompilerOptions="-Xplugin:$configurations.scalaCompiler.singleFile.path"
compileScala.scalaCompileOptions.additionalParameters = [scalaCompilerOptions]
compileTestScala.scalaCompileOptions.additionalParameters = [scalaCompilerOptions]



jfxmobile {
    android {
        manifest = 'src/android/AndroidManifest.xml'
        minSdkVersion '28'
        compileSdkVersion '28'
        buildToolsVersion '28.0.0'
        dexOptions {
            javaMaxHeapSize '3g'
        }
    }
}

Manifest.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sfxml" android:versionCode="1" android:versionName="1.0">
        <supports-screens android:xlargeScreens="true"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28"/>
        <application android:label="Test2" android:name="android.support.multidex.MultiDexApplication">
                <activity android:name="javafxports.android.FXActivity" android:label="Test2" android:configChanges="orientation|screenSize">
                        <meta-data android:name="main.class" android:value="sfxml.Main"/>
                        <meta-data android:name="debug.port" android:value="0"/>
                        <intent-filter>
                                <action android:name="android.intent.action.MAIN"/>
                                <category android:name="android.intent.category.LAUNCHER"/>
                        </intent-filter>
                </activity>
        </application>
</manifest>

当我只是在为桌面编译时,一切都很好。我在这里错过了什么?为什么Gradle或JavaFXPorts不承认这些更改?

如果您需要更多的上下文来了解我正在尝试实现的目标,您可以阅读

另外:我正在最新的版本上使用Intellij (如果这有区别的话)

另外:我将项目设置配置为使用JDK 9和Android-SDK 28。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-07 18:05:00

我找到了答案,这里

需要使用dex选项,如下所示:

代码语言:javascript
复制
android {
        manifest = <path/to/manifest>
        dexOptions {
            additionalParameters "--min-sdk-version=24"
        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51128014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档