Akka Streams, Java и Android Studio - PullRequest
0 голосов
/ 01 мая 2020

Я давно хотел, чтобы Akka Streams (java) работал с Android Studio для учебного проекта. Я добавляю зависимости Akka Actor и Akka Streams в build.gradle, и он отлично синхронизируется, добавляя оба из них во внешние файлы. Проект в порядке, но однажды развернутое приложение вылетает со следующей ошибкой

Failed to open dex files from /data/app/com.example.akkamagic-ln3G_VACZwI9pFOWqDOdPQ==/base.apk because: Failure to verify dex file '/data/app/com.example.akkamagic-ln3G_VACZwI9pFOWqDOdPQ==/base.apk': Bad index for method_handle_item method_idx: ffff >= f99b

Я сталкивался с вещами, которые говорили мне, чтобы застраховать

compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }

Это добавлено. Я установил для jetifier значение false, так как это создало другой набор ошибок, и я добавил следующее для конфликтов файлов.

  packagingOptions {
            pickFirst 'google/protobuf/*'
            pickFirst 'google/protobuf/compiler/plugin.proto'
            pickFirst 'reference.conf'
        }

Вот весь build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.akkamagic"
        minSdkVersion 27
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
        packagingOptions {
            pickFirst 'google/protobuf/*'
            pickFirst 'google/protobuf/compiler/plugin.proto'
            pickFirst 'reference.conf'
        }

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}

dependencies {
    implementation 'com.android.support:multidex:1.0.3'

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
    implementation 'io.magicthegathering:javasdk:0.0.16'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'

    implementation 'com.typesafe.akka:akka-actor_2.12:2.6.3'
    implementation 'com.typesafe.akka:akka-stream_2.12:2.6.3'
}

и gradle.properties

# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=false

На данный момент у меня нет никакого реального кода в проект, который использует библиотеку akka. Если я удаляю две зависимости akka из build.gradle, проект синхронизируется, компилируется, развертывается и запускается, как следует.

Я знаю, что Akka Streams, вероятно, не самая лучшая программа для моего приложения, но я просто пытаюсь по-настоящему понять, как работает akka Streams, и я не хочу изучать HTML / CSS / JavaScript прямо сейчас.

...