web-dev-qa-db-ja.com

IntelliJ Idea 12 + Android + Scala最近

私に提案されたように、私はIntelliJ IdeaとAndroidとScalaが一緒に動作するようにする方法を説明するいくつかの記事を実行しましたが、すべてが1年または2年前に書かれました。おそらく、その時から何かが変わっており、この目標を達成するための他のソリューションがあります。具体的には、新しいソリューションがあります https://github.com/yareally/Android -scala-intellij-no-sbt-plugin うまく機能するかどうかはわかりません。

IntelliJ Idea 12があります。Android SDK、Scala、SBT、およびその他すべてのものがインストールおよびセットアップされています。残っているのは、IntelliJ Idea 12をセットアップしてScalaの代わりにJava Androidアプリケーションを作成するため。

質問を閉じないでください。以前の質問は私のものと似ていましたが、私が言ったように、それらは時代遅れでした。

問題は、どうすればいいのか今(2013年5月)

追伸Android Development Studioを試しましたが、多くのエラーのために起動することさえできませんでした。

56
Alan Coromano

Update:tutorial を読むことができます。SBT-Androidの新しいバージョン(0.7)について書きました。あなたの懸念のほとんどはそこで対処する必要があります。そうでない場合、それは問題です。


更新2:公平のために、進行中の素晴らしい作業もあります: Android-sdk-plugin by GpfHubの@pfn 。

ProGuardとビルド時間について:

  • 私自身、 大きなライブラリをプリロードするsbt-Androidを使用してデバイス上で。これにより、ProGuardは完全に削除されますが、rootが必要です。

  • Android-sdk-pluginの最新バージョンは、新しいProGuardキャッシュ( AndroidProguardScala と同じ)を誇っています。これは非常に甘く、開発中にほとんどの場合ProGuardを排除します。


私は SBT-Android に数か月間貢献しているので、他のソリューションよりもずっと良いことを知っています。

現在、プラグインは次のように急速に進化しています:

  • 完全なIntelliJサポート( SBTIdea に感謝)すぐに来ます(実際、すでに動作しています。プルリクエストを送信するだけです)
  • 自動的にプリロードScalaエミュレーター、またはルート化されたデバイスでAndroid:preload-{device, emulator}を実行するだけで、開発にProguardは不要になりました!)
  • 最小限の労力で、すぐに使えるシンプルなGradleプロジェクトをサポートする必要があります(ディレクトリ構造は非常に似ています)
  • 設定はもっと簡単です(プラグインと プロジェクトファイル を追加するだけで設定できます!)

現在のバージョンにはこれらの機能のほとんどはありませんが、それらは次の週に登場します。もちろん、いくつかのドキュメンテーションは、例と私が考えるすべてのものとともに、すぐ後に続きます。

Scala on Android Googleグループに参加して、あなたの考えを共有してください。 IRCを使用している場合は、Freenodeに#sbt-Androidチャンネルもあります。

21
F.X.

これにチャイムインしたかっただけです。 https://github.com/yareally/Android-scala-intellij-no-sbt-plugin を使用しましたが、これまでIntelliJを使用したことがないため、説明が曖昧であることがわかりました。

おそらく今ではすべてが整理されており、SBTに満足していますが、私の目的のためにScala on Androidしたがって、no-sbt-pluginを機能させるために私がしなければならなかったいくつかの小さなことを以下に示します。

最終的にscala-compiler.jar(scala-library.jarおよびscala-reflect.jarとともに)をグローバルライブラリとして含めました。 enter image description here

そうすれば、コンパイラはライブラリとリフレクションコードにアクセスできます。そうしないと、エラーが発生しました。ライブラリを含めない場合、IDEはコンパイラに関連ライブラリが必要であると文句を言い、反映しない場合、コンパイル時に大量のエラーを吐き出します。クラス定義を反映する検索。

Scala-library.jarもモジュールの依存関係として含める必要がありました(ライブラリセクションにも含めるという副作用がありました)。 enter image description here

すべてを実行する前に、Scalaプラグインをインストールし、Androidプロジェクトを作成し、単にScalaファセットを追加しました(メモリ設定を無視して、私は浮気していた): enter image description here

最後に、いくつかの「-dontwarn」行をproguard txtファイルに追加して、残りのコンパイルエラーを解決する必要がありました。簡単です。

魅力のように機能します。まだ十分なことはしていませんが、次のScalaプロジェクトでAndroid=を使用することを楽しみにしています。

8
drhr

私は Scaloid ライブラリを作成しました。このライブラリは、Scalaを使用してAndroid開発をより簡潔にします。

手始めとして、Scala + Android用の hello-world mavenプロジェクトを作成しました。

IntellijをメインIDEとして使用し、魅力的なプロジェクトをインポートします。

5
pocorall

私はこのスレッドを数か月間見てきましたが、ようやく実際のテストを行う時間ができました。

IntelliJ 13をSBT 0.13およびScala 2.10.3。

  1. SBT-Android は数か月間更新されていません。指示は時代遅れで、作業プロジェクトを作成することができませんでした。

  2. Android-sdk-plugin は機能しました。簡単な手順に従うだけで、携帯電話で「hello world」が実行されました。ただし、SBTプロジェクトをIntelliJにインポートすると、正しく機能せず、プロジェクトを手動で変更する必要があります。

  3. また、Androidプロジェクトを最初に作成してから、Scalaフレームワークを追加しましたが、期待どおりに動作しませんでした。

3
Madwyn

私はこれを約1か月前に経験しましたが、Gradleを使用してうまく機能させることができました。

結果は次のとおりです。 https://github.com/ghik/akkdroid

これはScalaとAkkaを使用し、Androidのクライアント側でIntelliJ IDEAで開発されたシンプルなクライアントサーバープロジェクトです。クライアントサーバーはAkkaでは意味をなさないことがわかっていますが、これは、これらのテクノロジーが連携して機能することを証明するための単なる大学のプロジェクトです。

ただし、このプロジェクトのgradleスクリプトはIDEAプロジェクトを生成するためだけのものであり、適切なAndroidアプリケーションビルドを実行できるようにさらに拡張する必要があります。

3
ghik