Android Studio忽略--core-library标志

kim*_*a93 11 android gradle android-studio android-gradle-plugin

我有一个项目,我想在我的计算机上配置.

在其他计算机上它可以工作,但每当我使用0.5.2时,使用旧版Android Studio 0.4.0

问题是我启动应用程序后显示错误

构建脚本错误,找不到支持的Gradle DSL方法:'coreLibrary()'!可能的原因可能是:
- 您正在使用Gradle版本,其中方法不存在 - 您没有应用提供方法的Gradle插件 - 或者构建脚本中存在错误

但为了使它工作,我必须使用这个标志!我已经尝试在设置> Android编译器>"添加--core-library"标志中启用它,但它没用...

在gradle我有下一部分代码:

    dexOptions {
    coreLibrary true;
}
Run Code Online (Sandbox Code Playgroud)

此错误仅在激活此行之后显示...没有它们它不起作用...

我应该如何修复这个?也许这是因为不同的版本..如果是的话那么我应该如何写它才能使它工作?

更改为coreLibrary = true之后它运行-core-library标志使用后编译Gradle精细BUt stille需要....但我已经在设置中将其设置为true ...

它显示不是几乎相同的错误:

Error:Execution failed for task ':BusKg:preDexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    D:\Programms\Programms\adt-bundle-windows-x86_64-20131030\sdk\build-tools\android-4.4\dx.bat --dex --output D:\Android2\BUS.kg\marshrutka\BusKg\build\pre-dexed\debug\annotations-api-6.0.26-27e56569b50edbdd453f9bc0e568cde1fbfa621b.jar C:\Users\Viacheslav\.gradle\caches\modules-2\files-2.1\org.apache.tomcat\annotations-api\6.0.26\50aeafa144ed17913ed44d18ac61afd505a9e3e\annotations-api-6.0.26.jar
Error Code:
    1
Output:
    trouble processing "javax/xml/ws/WebServiceRef.class":
    Ill-advised or mistaken usage of a core class (java.* or javax.*)
    when not building a core library.
    This is often due to inadvertently including a core library file
    in your application's project, when using an IDE (such as
    Eclipse). If you are sure you're not intentionally defining a
    core class, then this is the most likely explanation of what's
    going on.
    However, you might actually be trying to define a class in a core
    namespace, the source of which you may have taken, for example,
    from a non-Android virtual machine project. This will most
    assuredly not work. At a minimum, it jeopardizes the
    compatibility of your app with future versions of the platform.
    It is also often of questionable legality.
    If you really intend to build a core library -- which is only
    appropriate as part of creating a full virtual machine
    distribution, as opposed to compiling an application -- then use
    the "--core-library" option to suppress this error message.
    If you go ahead and use "--core-library" but are in fact
    building an application, then be forewarned that your application
    will still fail to build or run, at some point. Please be
    prepared for angry customers who find, for example, that your
    application ceases to function once they upgrade their operating
    system. You will be to blame for this problem.
    If you are legitimately using some code that happens to be in a
    core package, then the easiest safe alternative you have is to
    repackage that code. That is, move the classes in question into
    your own package namespace. This means that they will never be in
    conflict with core system classes. JarJar is a tool that may help
    you in this endeavor. If you find that you cannot do this, then
    that is an indication that the path you are on will ultimately
    lead to pain, suffering, grief, and lamentation.
    1 error; aborting
Run Code Online (Sandbox Code Playgroud)

在此先感谢任何帮助......

小智 13

project.tasks.withType(com.android.build.gradle.tasks.Dex) {
    additionalParameters=['--core-library']
}
Run Code Online (Sandbox Code Playgroud)

不正常工作,并得到错误:

无法为com.android.build.gradle.AppExtension类型的对象获取未知属性'com'.

我通过将其添加到android块来解决问题.

dexOptions {
    preDexLibraries = false
    additionalParameters=['--core-library']
}
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助!


Bag*_*ain 5

在Android Studio 1.1.0中,导航至:

文件 - >其他设置 - >默认设置 - >编译器 - > Android编译器

您将找到添加"--core-library"标志的复选框,但这似乎不起作用.

而是编辑文件app/build.gradle

禁用内部预先android {}使用

dexOptions {
    preDexLibraries = false
}
Run Code Online (Sandbox Code Playgroud)

和修改Dex task使用

project.tasks.withType(com.android.build.gradle.tasks.Dex) {
    additionalParameters=['--core-library']
}
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.

编辑: app/build.gradle的完整内容

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "appId"
        minSdkVersion 19
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }

    project.tasks.withType(com.android.build.gradle.tasks.Dex) {
        additionalParameters=['--core-library']
    }

    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/MANIFEST.MF'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE.txt'
        // more exclude files here if conflicts
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 不再适用于AndroidStudio 1.5 (3认同)

kim*_*a93 0

我解决了这个问题!不幸的是,我仅通过安装版本 Android Studio 0.4.2 解决了这个问题...其他方法没有帮助...可能以后,最好为新版本的 Android Studio 配置项目。