Android - отличная платформа. Scala - отличный язык. Intellij Idea - отличная среда разработки.
Как все они могут работать вместе?
Примечание. Это ответ сам. Но если у вас есть дополнительная информация, пожалуйста, поделитесь ею здесь.
Android - отличная платформа. Scala - отличный язык. Intellij Idea - отличная среда разработки.
Как все они могут работать вместе?
Примечание. Это ответ сам. Но если у вас есть дополнительная информация, пожалуйста, поделитесь ею здесь.
Да, они могут.
Предпосылки: Установлен SDK Scala. Scala Установлен плагин Intellij. Включены плагины Android Intellij.
Не требуется SBT и сторонних плагинов. Нет Gradle. Поддержка Gradle еще не совместима с плагином Scala. Сообщите мне, если это так.
Я использую successfuly Scala 2.11.7 + Android Studio + Gradle с этим плагином gradle-android-scala-plugin и текущей конфигурацией:
build.gradle
buildscript {
repositories {
jcenter()
mavenCentral()
maven {
url "http://saturday06.github.io/gradle-android-scala-plugin/repository/snapshot"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.1'
classpath 'jp.leafytree.gradle:gradle-android-scala-plugin:1.3.2'
classpath "org.scala-lang:scala-library:2.11.7"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
приложение/build.gradle
apply plugin: 'com.android.application'
apply plugin: "jp.leafytree.android-scala"
android {
compileSdkVersion 22
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "com.example.adray.myapplication"
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
lintOptions {
abortOnError false
}
sourceSets {
main {
scala {
srcDir "src/main/scala" // default: "src/main/scala"
}
}
androidTest {
scala {
srcDir "src/androidTest/scala" // default: "src/androidTest/scala"
}
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.github.satyan:sugar:1.3'
compile 'org.scala-lang:scala-library:2.11.7'
compile 'com.google.android.gms:play-services:7.5.0'
compile 'com.android.support:appcompat-v7:22.2.0'
}
repositories {
mavenCentral()
jcenter()
}
proguard-rules.pro
-dontoptimize
-dontobfuscate
-dontpreverify
-dontwarn scala.**
-dontwarn android.support.v4.app.**
-dontwarn android.support.v4.view.**
-dontwarn android.support.v4.widget.**
-ignorewarnings
# temporary workaround; see Scala issue SI-5397
-keep class scala.collection.SeqLike {
public protected *;
}
Смотрите эту дискуссию, чтобы узнать больше об этом вопросе.