私のためには以下の作品があります。
私はスカラ座のsbtプロジェクト作成:私は、sbt update
をした
build.sbt
name := "scala_android"
version := "0.1"
scalaVersion := "2.11.11"
javacOptions ++= Seq("-source", "1.7", "-target", "1.7")
scalacOptions += "-target:jvm-1.7"
のsrc /メイン/スカラ座/ mypackageと/ MyClass.scala
package mypackage
class MyClass {
def myMethod(): String = "AAA"
}
をsbt compile
,sbt package
。
今私は瓶を持っていたtarget/scala-2.11/scala_android_2.11-0.1.jar
。
次に、「Empty Activity」でAndroidプロジェクトを作成しました。
scala_android_2.11-0.1.jar
をapp/libs
に設定しました。
私はapp/build.gradle
dependencies {
...
compile name: 'scala_android_2.11-0.1'
compile group: 'org.scala-lang', name: 'scala-library', version: '2.11.11'
}
repositories {
flatDir {
dirs 'libs'
}
}
に書いたとapp/src/main/java/example/com/myapplication/MainActivity.java
package example.com.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import mypackage.MyClass;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
MyClass obj = new MyClass();
Log.e("tag", obj.myMethod());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
でエミュレータを開始し、MainActivityを走った、Gradleのプロジェクトに更新。
Androidのモニターだから、(少なくとも、そのような "Hello World" の例では確実に)動作するようですエラーレベルに
09-03 08:47:06.447 6549-6549/? E/tag: AAA
を示しました。
これは基本的にできました^。私が使用していたjdkがsbtを実行するときにJava 7であることを確認しなければなりませんでした(これは私にとって、これを行うための最も簡単な方法はintellijを通して設定していました)。また、sbt-assemblyは自分のスタンドアロンの要件に適しているようですが、私はアンドロイド側でproguardを使用するとうまくいくと思っていますので、私はそのatmに対処する必要はありません。 – user1622727