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 및 기타 모든 항목이 설치 및 설정되어 있습니다. 남은 유일한 것은 Android 애플리케이션을 만들기 위해 Java 대신 Scala에서 작동하도록 IntelliJ Idea 12를 설정하는 것입니다.
질문을 닫지 마십시오. 나는 이전 질문과 비슷한 것을 보았지만 내가 말했듯이 구식이었습니다.
문제는 지금 어떻게해야하나요 (2013 년 5 월) ?
추신 : Android Development Studio를 사용해 보았지만 많은 오류로 인해 시작할 수 없었습니다.
업데이트 : 곧 출시 될 SBT-Android (0.7) 새 버전에 대해 제가 작성한 튜토리얼을 읽을 수 있습니다 . 대부분의 우려 사항은 그곳에서 해결되어야합니다. 그렇지 않다면 그것은 문제입니다.
업데이트 2 : 공정성을 위해 GitHub의 @pfn에 의해 android-sdk-plugin이 진행중인 훌륭한 작업도 있습니다.
ProGuard 및 빌드 시간 관련 :
나는 나 자신을 나는 큰 라이브러리를 미리로드 내 장치
sbt-android
. 이렇게하면 ProGuard가 완전히 제거되지만 루트가 필요합니다.android-sdk-plugin
의 최신 버전은 새로운 ProGuard 캐시 ( AndroidProguardScala 와 동일)를 자랑합니다.이 캐시 는 상당히 달콤하고 개발 중에 대부분의 경우 ProGuard를 제거합니다.
나는 지금 몇 달 동안 SBT-Android 에 기여해 왔기 때문에 다른 솔루션보다 훨씬 잘 알고 있습니다.
현재 플러그인은 다음과 같이 빠르게 발전하고 있습니다.
- 완전한 IntelliJ 지원 ( SBTIdea 덕분에 )이 곧 제공 될 예정입니다 (사실 이미 작동하고 있습니다. 풀 요청을 보내면됩니다).
- 에뮬레이터 또는 루팅 된 장치에 Scala를 자동으로 미리로드합니다 (단지 실행
android:preload-{device, emulator}
하면 더 이상 개발에 Proguard가 필요하지 않습니다!). - 최소한의 노력으로 기본적으로 간단한 Gradle 프로젝트를 지원해야합니다 (디렉토리 구조가 매우 유사 함).
- 구성이 훨씬 더 쉽습니다 (플러그인과 프로젝트 파일을 추가하기 만하면 됩니다!).
현재 버전에는 이러한 장점이 거의 없지만 다음 주에 출시 될 예정입니다. 물론 일부 문서는 내가 생각할 예제와 모든 것을 포함하여 곧 뒤따를 것입니다.
그나저나 Android Google Group 의 Scala에 가입 하여 의견을 공유해 주시기 바랍니다. #sbt-android
IRC에 참여하는 경우 Freenode에 채널 도 있습니다 .
이것에 차임하고 싶었습니다. 나는 https://github.com/yareally/android-scala-intellij-no-sbt-plugin을 사용 했지만 지침이 모호하다는 것을 알았지 만 IntelliJ를 사용한 적이 없었습니다.
당신은 아마 지금까지 모든 것을 정리하고 SBT에 만족할 것입니다. 그러나 제 목적을 위해 저는 단지 모든 추가 종소리와 휘파람없이 Android에서 Scala를 테스트하고 싶었습니다. 그래서, 다음은 no-sbt-plugin 기능을 작동시키기 위해 내가해야 할 몇 가지 작은 일입니다.
결국 scala-compiler.jar (scala-library.jar 및 scala-reflect.jar와 함께)를 글로벌 라이브러리로 포함했습니다.
이렇게하면 컴파일러가 라이브러리 및 리플렉션 코드에 액세스 할 수 있습니다. 그렇지 않으면 오류가 발생했습니다. 라이브러리를 포함하지 않으면 IDE는 컴파일러에 관련 라이브러리가 필요하다고 불평하고 reflect를 포함하지 않으면 리플렉션 클래스 정의를 찾을 수없는 컴파일 타임에 많은 오류가 발생합니다.
scala-library.jar를 모듈 종속성으로 포함해야했습니다 (Librries 섹션에도 포함하는 부작용이 있음).
이 모든 작업을 수행하기 전에 Scala 플러그인을 설치하고 Android 프로젝트를 만들고 단순히 Scala 패싯을 추가했습니다 (메모리 설정은 무시하고 장난이었습니다).
마지막으로 proguard txt 파일에 "-dontwarn"줄 몇 개를 추가하여 나머지 컴파일 오류를 해결해야했습니다. 충분히 간단합니다.
매력처럼 작동합니다. 아직 상당한 작업을 수행하지 않았지만 다음 Android 프로젝트에서 Scala를 사용하기를 고대하고 있습니다.
저는 Scala로 Android 개발을보다 간결하게 만드는 Scaloid 라이브러리를 작성했습니다 .
빠른 시작을 위해 Scala + Android 용 hello-world maven 프로젝트를 작성했습니다 .
Intellij를 기본 IDE로 사용하고 매력이있는 프로젝트를 가져옵니다.
나는 약 한 달 전에 이것을 겪었고 Gradle을 사용하여 꽤 잘 작동하도록 관리했습니다.
결과는 다음과 같습니다. https://github.com/ghik/akkdroid
이것은 IntelliJ IDEA로 개발 된 Android의 클라이언트 측과 함께 Scala 및 Akka를 사용하는 간단한 클라이언트-서버 프로젝트입니다. 나는 클라이언트-서버가 Akka에서 실제로 의미가 없다는 것을 알고 있지만, 이는 이러한 기술이 함께 작동 할 수 있음을 증명하는 단순한 대학 프로젝트 일뿐입니다.
그러나이 프로젝트의 gradle 스크립트는 IDEA 프로젝트를 생성하는 용도로만 사용되며 적절한 Android 애플리케이션 빌드를 수행 할 수 있도록 추가로 확장해야합니다.
나는이 스레드를 몇 달 동안 지켜 봤고, 마침내 실제 테스트를 할 시간을 얻었다.
SBT 0.13 및 Scala 2.10.3과 함께 IntelliJ 13 사용.
SBT-안드로이드는 몇 달 동안 업데이트되지 않았습니다. 지침이 구식이고 작업 프로젝트를 만들지 못했습니다.
안드로이드 SDK는-플러그인이 작동했다. 간단한 단계를 따르기 만하면 휴대 전화에서 "hello world"가 실행됩니다. 그러나 SBT 프로젝트를 IntelliJ로 가져 오는 것은 제대로 작동하지 않으며 일부 프로젝트를 수동으로 수정해야합니다.
또한 먼저 Android 프로젝트를 만든 다음 Scala 프레임 워크를 추가하려고 시도했지만 예상대로 작동하지 않았습니다.
참조 URL : https://stackoverflow.com/questions/16750642/intellij-idea-12-android-scala-nowadays
'Development Tip' 카테고리의 다른 글
Python의 메타 클래스 및 상속 이해 (0) | 2020.12.31 |
---|---|
PhoneGap 대 티타늄 (0) | 2020.12.31 |
페이지 매김을위한 ProgressBar가있는 Endless RecyclerView (0) | 2020.12.31 |
auto x {3}가 initializer_list를 추론하는 이유는 무엇입니까? (0) | 2020.12.31 |
AVPlayer 사용시 우수한 스크롤 성능 유지 (0) | 2020.12.31 |