Я давно хотел, чтобы 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 прямо сейчас.