标签: jack-compiler

错误:Jack需要支持java 8语言功能

当我尝试通过添加获得android studio 2.1和android N SDK后更新我的android项目以使用Java 8

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)

我有这个错误

错误:Jack需要支持java 8语言功能.启用Jack或删除sourceCompatibility JavaVersion.VERSION_1_8.

我该怎么办?

android android-studio android-gradle-plugin jack-compiler

136
推荐指数
1
解决办法
9万
查看次数

68
推荐指数
3
解决办法
5万
查看次数

ButterKnife没跟杰克合作?

我刚开始一个非常简单的项目,并尝试使用ButterKnife和Jack编译器,但似乎它们并不能很好地应对.

Gradle插件版本:2.2.0-alpha5

在我的模块build.gradle中我添加了:

compile 'com.jakewharton:butterknife:8.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.2.1'
Run Code Online (Sandbox Code Playgroud)

并且错误消息是:

Error:Execution failed for task ':app:transformJackWithJackForDebug'.
java.lang.AssertionError: java.lang.IllegalArgumentException
Run Code Online (Sandbox Code Playgroud)

我错过了什么,或者只是他们不兼容?

android android-layout android-studio butterknife jack-compiler

13
推荐指数
2
解决办法
1566
查看次数

使用jack的Android编译时间非常慢

我最近升级到Java 8,我的计算机随后使用jack来编译我的android版本.自从我切换后,在我的设备上构建应用程序需要花费大量时间; 通常在3-5分钟之间.我将.jack文件中的服务器超时值更改为1800秒,似乎服务器超时仍设置为60秒.有没有人有类似的问题?

这是我的.jack文件的样子:

SERVER_TIMEOUT=1800
Run Code Online (Sandbox Code Playgroud)

编辑:我最近将我的计算机从2010年中期的mac桌面计算机升级到2015年末的模型.虽然千斤顶仍然没有像我想的那样快速编译,但它已经有了很大的改进.过去每次编译大约需要5分钟,现在编译只需要一点多一点.因此,对于那些面临类似问题的人,也许这可能会为解决您的问题提供一些额外的见解.

android java-8 android-studio jack-compiler

8
推荐指数
1
解决办法
1337
查看次数

Lambda在Android库模块中导致编译器异常

当我在Android库模块中使用lambda表达式时,我收到编译器异常com.sun.tools.javac.code.Symbol$CompletionFailure: class file for java.lang.invoke.MethodType not found.

在Android应用程序模块中使用时,Lambda表达式正在编译时没有错误.

可以在此处找到演示此问题的示例项目:https:
//github.com/adamdye/AndroidLambdaIssue

示例中有趣的类是MyLibrary.java和MainActivity.java.每个类包含相同的表达式.

建立

 Android Studio 2.2 preview 1
 min/target SDK version = android-N
 build tools version = 24.0.0.rc4
jack compiler enabled
source/target compatibility = 1.8
Gradle version = 2.10
Android Plugin Version = 2.2.0-alpha1
JDK = java 8 
Run Code Online (Sandbox Code Playgroud)

我对使用retro-lambda不感兴趣.我希望通过正确的配置来实现这一点.我想我在某个地方错过了一步.

lambda android android-library jack-compiler android-studio-2.2

8
推荐指数
1
解决办法
1756
查看次数

错误:任务执行失败':app:transformJackWithJackForDebug'

我在运行应用程序时遇到以下问题.

错误:任务':app:transformJackWithJackForDebug'的执行失败.com.android.sched.scheduler.RunnerProcessException:'MethodIdMerger'跑步'''出错:超出GC开销限制

我还在gradle文件中声明了堆大小

dexOptions {
    preDexLibraries = false
    javaMaxHeapSize "4g"
 }
Run Code Online (Sandbox Code Playgroud)

我正在使用android studio 2.2并启用了JackOption.

更新:包含build.gradle

apply plugin: 'com.android.application'

repositories {

    mavenCentral()
}

android {

    compileSdkVersion 23
    buildToolsVersion '24.0.2'
    compileOptions.encoding = 'ISO-8859-1'
    useLibrary('org.apache.http.legacy')

    lintOptions{
        abortOnError false
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'
    }

    defaultConfig {
        applicationId "appID"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 2033
        versionName "6.1"
        multiDexEnabled true
        ndk {
            abiFilters "armeabi", "x86"
        }
        jackOptions {
            enabled true
        }
    }

    dexOptions {
        preDexLibraries …
Run Code Online (Sandbox Code Playgroud)

android android-studio jack-compiler

6
推荐指数
1
解决办法
6674
查看次数

Android Studio:任务app:transformClassesWithPreJackPackagedLibrariesForDebug的执行失败

因此,我现在使用Android Studio 2.2稳定版本,将Studio更新到2.2版本后,在运行应用程序时出现以下错误:

Error:Execution failed for task ':app:transformClassesWithPreJackPackagedLibrariesForDebug'.
> java.lang.Boolean cannot be cast to java.lang.String
be corrupt (this sometimes occurs after a network connection timeout.)
<a href="syncProject">Re-download dependencies and sync project (requires network)</a></li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
<a href="stopGradleDaemons">Stop Gradle build processes (requires restart)</a></li><li>Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of …
Run Code Online (Sandbox Code Playgroud)

android-studio android-gradle-plugin jack-compiler

5
推荐指数
1
解决办法
4441
查看次数

长链中的rxjava StackOverflowError异常

我使用许多运算符构建了很长的rxjava链(带有改装请求):doOnNext,doOnError,switchIfEmpty,onErrorResumeNext,flatMap在某些设备(例如Android 4.1)上,当链沿最长路线走时,它会引发StackOverflowError异常。

是否有一些方法或最佳实践来优化链或防止StackOverflowError?

现在,我只看到一种方法-断开链,并从第一个onComplete(OnNext)调用第二部分,但我认为这不是被动方式。

另一种方法-使用.subscribeOn(Schedulers.newThread());更改线程 操作员。似乎也不是最好的解决方案。

我的代码:1)订阅代码

fastSearch(keyphrase)
    .onErrorResumeNext(throwable -> {
        return correctKeyphraseAndSearch(keyphrase);
    })
    .doOnNext(resultsDao -> {...})
    .subscribe(...)
Run Code Online (Sandbox Code Playgroud)

2)辅助方法

public static Observable<SearchResultsDao> fastSearch(final String keyphrase) {
    String SRD = "true";
    final HttpQueryParams params = new HttpQueryParams();
    //read from cache chain
    Observable<SearchResultsDao> cacheChain = getCache().fastSearch(keyphrase, SRD)
            .doOnNext(...)
            .doOnError(...)
            .onErrorResumeNext(new HandleNoCacheEntry<SearchResultsDao>(params)); //save some data to "params", and return Observable.empty
    //network request chain
    Observable<SearchResultsDao> networkChain = getApi().fastSearch(keyphrase, SRD)
            .retryWhen(new OnNewSessionRequired())
            .doOnNext(new WriteToCacheAction<SearchResultsDao>(params)); //save to cache
    //combine cache+network chains
    return cacheChain
            .switchIfEmpty(networkChain)
            .doOnNext(resultsDao -> …
Run Code Online (Sandbox Code Playgroud)

stack-overflow android rx-java retrofit jack-compiler

1
推荐指数
1
解决办法
1234
查看次数