0

RxAndroid と Google Play Services を一緒に実行したり、Google Play Services を追加した後に Android Studio でプロジェクトをビルドしたりするのに問題があります。次の 2 つの役立つサイトを参照として使用しました: How to setup retrolambda and Functional Reactive Programming with RxJava in Android . 何かを見逃しているかもしれませんが、ビルド中に終了エラーで中止されるか、実際のアプリケーションを実行するときに Java 8 で java.exe (Java 8) に問題がありました。エラーから、レトロラムダが必要であると推測しましたが、プロジェクトの構築にはまだ問題がありました。

4

1 に答える 1

0

いくつかの試行錯誤、調査などの後、これが私にとってうまくいったことがわかったものです。行末のコメントアウトされた値の一部は、以前に試した値であることに注意してください。

プロジェクト build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
//        jcenter()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.2.3'   //1.3.0
    classpath 'me.tatarka:gradle-retrolambda:3.2.0'   //2.5.0
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
//        jcenter()
    mavenCentral()
}
}

モジュール build.gradle

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'

android {
compileSdkVersion 22   //21
buildToolsVersion "21.1.2"    //21.1.2

defaultConfig {
    applicationId "com.your.app"
    minSdkVersion 18
    targetSdkVersion 22  //21
    multiDexEnabled = true

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


dexOptions {
    javaMaxHeapSize "2g"
    preDexLibraries = true  //false
    incremental false
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'  //21.0.3   22.2.1
compile 'com.google.android.gms:play-services:7.8.0' //7.8.0
compile 'io.reactivex:rxandroid:0.24.0'
}

retrolambda {
jvmArgs '-noverify'
jdk System.getenv("JAVA8_HOME")
oldJdk System.getenv("JAVA7_HOME")
javaVersion JavaVersion.VERSION_1_7
defaultMethods false
incremental true

}

proguard-rules.pro

-dontwarn java.lang.invoke.*

さらに、上記の参照パス環境値 JAVA7_HOME、JAVA8_HOME を追加しました。これらは、各 Java インストールの適切なディレクトリを指します。

于 2015-08-16T11:36:41.907 に答える