java - Akka Streams、Java 和 Android Studio
问题描述
我一直想让 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 库的项目中没有任何实际代码。如果我从 build.gradle 中删除两个 akka 依赖项,项目将按应有的方式同步、构建、部署和运行。
我知道 Akka Streams 可能不是我正在运行的应用程序的最佳选择,但我只是想真正了解 akka 流的工作原理,我现在不想学习 HTML/CSS/JavaScript .
解决方案
推荐阅读
- xcode - Swift 如何在 4 个输入的方法中使用 Switch 语句(SENDER)
- c++ - 如何在正在运行的进程上设置断点
- sql - 如何将 SQL 查询转换为 MongoDB
- html - 将 rem 单位乘以一个值以输出 deg 单位
- javascript - 多次调用函数时避免数字多次递增
- python - `pip install fastparquet` 失败并显示“找不到适合 Requirement.parse('numpy>=1.11') 的分布”但 `pip install numpy==1.11` 成功
- ios - 在评估Javascript期间未调用 WKURLSchemeHandler 委托
- python - 了解具有两个自调用的递归函数的执行流程
- c# - 如何模拟返回大量属性的获取函数?
- derby - 使用 apache derby 时出现错误