Articles of scala

如何降级android studio gradle中的proguard版本?

我正在尝试使用scala和android studio来构build一个android应用程序。 在proguard编译失败,例外: Error:java.lang.ArrayIndexOutOfBoundsException: 4 at proguard.classfile.editor.InterfaceDeleter.visitSignatureAttribute(InterfaceDeleter.java:162) at proguard.classfile.attribute.SignatureAttribute.accept(SignatureAttribute.java:97) 我在另一个地方( http://sourceforge.net/p/proguard/bugs/549/ )发现这个问题是由scala中的一个bug造成的,但是它只发生在proguard 5.1中,而不是在proguard 5.0中。 现在我的问题是:我怎么能安装android studio,以便它会使用proguard 5.0?

使用AndroidAnnotations与Scala和Gradle

使用Scala编程语言和Gradle构build系统可以使用AndroidAnnotations吗? 当我尝试将AndroidAnnotations集成到我现有的Android / Scala / Gradle项目中时,编译失败,因为生成的下划线类(例如MyActivity_)无法find。 这里有一些有用的出发点和参考: http://www.scala-lang.org/node/4773(2010-01-06 ) http://www.scala-lang.org/sid/5(2010-01-27 ) http://code.google.com/p/androidannotations/wiki/Configuring(2011-07-28 ) http://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/ch08.html#d0e2816(2010 ?) 使用Ant的Java 6注释处理configuration (2010-09-05) http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html#processing http://ant.apache.org/manual/Tasks/apt.html 从Gradle构build脚本生成JPA2元模型 (2011-06-22) http://download.oracle.com/javase/1.5.0/docs/guide/apt/GettingStarted.html

如何从proguard版本中排除R * .class文件

我离这里描述的方法只有一步之遥: 用Scala 2.8 Trunk构buildAndroid 与一个单一的项目(一个项目为斯卡拉和一个为Android)。 我遇到了一个问题。 使用这个input文件(参数)proguard: -injars bin;lib/scala-library.jar(!META-INF/MANIFEST.MF,!library.properties) -outjar lib/scandroid.jar -libraryjars lib/android.jar -dontwarn -dontoptimize -dontobfuscate -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -keepattributes Exceptions,InnerClasses,Signature,Deprecated, SourceFile,LineNumberTable,*Annotation*,EnclosingMethod -keep public class org.scala.jeb.** { public protected *; } -keep public class org.xml.sax.EntityResolver { public protected *; } Proguard成功构build了scandroid.jar,但它似乎包含了由android资源构build器生成和编译的生成的R类。 在这种情况下,它们位于bin / org / jeb / R * .class。 这不是我想要的。 Android的dalvik转换器不能build立,因为它认为有重复的R类(这是在scandroid和R * .class文件)。 我怎样才能修改上述proguard参数从scandroid.jar排除R * […]

Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty

我在Android 2.2.1上遇到以下exception: java.lang.NoSuchMethodError: java.lang.String.isEmpty 我从Scala调用text.isEmpty 。 任何想法,如何解决这个问题?

使用Scala与Gradle for Android项目

似乎有一个内存泄漏的地方。 在IntelliJ中设置项目并使用Gradle包装器时: ./gradlew assembleDebug –debug 大约5分钟后,我得到以下内容: 14:30:15.245 [INFO] [org.gradle.api.Project] processing scala/collection/SeqViewLike$$anon$5.class… 14:30:53.132 [INFO] [org.gradle.api.Project] processing scala/collection/SeqViewLike$$anon$6.class… 14:33:51.027 [ERROR] [org.gradle.api.Project] 14:33:51.028 [ERROR] [org.gradle.api.Project] UNEXPECTED TOP-LEVEL ERROR: 14:33:51.028 [ERROR] [org.gradle.api.Project] java.lang.OutOfMemoryError: Java heap space 14:33:51.028 [ERROR] [org.gradle.api.Project] at java.util.HashMap.<init>(HashMap.java:209) 14:33:51.029 [ERROR] [org.gradle.api.Project] at com.android.dx.ssa.LocalVariableInfo.<init>(LocalVariableInfo.java:66) 14:33:51.029 [ERROR] [org.gradle.api.Project] at com.android.dx.ssa.LocalVariableExtractor.<init>(LocalVariableExtractor.java:72) 14:33:51.029 [ERROR] [org.gradle.api.Project] at com.android.dx.ssa.LocalVariableExtractor.extract(LocalVariableExtractor.java:54) 14:33:51.029 [ERROR] [org.gradle.api.Project] […]

在Android上使用IntelliJ编写的Scala中的LibGDX项目

因此,在使用本教程进行设置后,我一直在使用Scala在IntelliJ v12.1.6中开发一个LibGDX项目: http ://www.gamefromscratch.com/post/2013/12/01/Using-LibGDX-with-IntelliJ -with-Gradle.aspx 。 不过,我注意到,当我的Android设备上testing游戏时,我收到以下错误 12-04 17:46:22.483: ERROR/AndroidRuntime(18951): FATAL EXCEPTION: GLThread 475 Process: com.voliant.rsoss, PID: 18951 java.lang.NoClassDefFoundError: scala.Predef$ at com.voliant.rsoss.Actors.Player.act(Player.scala:20) at com.badlogic.gdx.scenes.scene2d.Group.act(Group.java:48) at com.badlogic.gdx.scenes.scene2d.Stage.act(Stage.java:225) at com.badlogic.gdx.scenes.scene2d.Stage.act(Stage.java:189) at com.voliant.rsoss.Screens.GameScreen.render(GameScreen.scala:46) at com.badlogic.gdx.Game.render(Game.java:46) at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:499) at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523) at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240) 每当我尝试使用Scala本地的方法(如标准的println()方法)。 我怀疑android类找不到Scala使用的类,所以我试图用Scala库导出android项目。 但是,每当我尝试这个,我得到一个错误,我有太多的方法, (类似于这个) ,这是有道理的,因为斯卡拉引入足够的方法进入项目,以保证这个错误。 我的问题是我怎么能让Android项目意识到Scala类和方法,以便我可以在android项目中有效地使用它们,因为我已经能够在桌面项目中? 谢谢!

在Android Studio中使用与Java的Scala

我在Android Studio 1.2.2中安装了1.5.2 Scala插件。 我有一个以Java编码的现有(function)项目。 我在Scala中添加了一个简单的类来replace现有的Java类,只是为了试用它。 IDE似乎validation了Scala代码,但是从Java代码引用的类没有解决。 我不知道为什么。 我已经在这个项目的服务器端的SBT下成功混合了这些语言。 Java代码引用如下所示: package net.from.apprise; import java.util.*; import java.io.Serializable; import org.json.*; class ItemRelation extends SharableRecord implements Serializable, JSONable { public static final String TAG = "IR"; String listKey; String description; String barCode; Purch purch; 喀嚓… Purch从Java中定义的Purchase改为正常解决。 Scala代码是: package net.from.apprise class Purch { val whatever:Int = 1 } 尝试build立良率: […]

在Android上的斯卡拉演员

我今天尝试在android(2.1)上的一个小scala(2.8)应用程序中使用actor,并且不断得到一个引用sun.misc.Unsafe.throwException的非常奇怪的错误。 我在想,也许dalvik虚拟机不包括这个,所以基本上不能在android上使用,但我希望我错了。 有没有人设法让演员在Android上工作?

如何可以缩小文件大小的Android的Scala应用程序?

我正在尝试在Eclipse中使用Scala编写Android应用程序。 我遇到的问题是部署的APK文件太大 – 因为您无法将Android应用程序链接到外部库,所使用的任何代码都必须复制到APK文件中,但大多数Scala应用程序不需要大部分的Scala库。 我读过的地方是,即使是一个大的应用程序,也可以打包只有50kb左右的Scala库,相比之下,我的Android设备告诉我,我的testing应用程序占用4mb。 我已经尝试了Eclipse的Treeshaker插件,并且可以在进度窗口看到它正在运行,但似乎没有任何操作。 从我的项目中分解它不会影响最终的文件大小。 我也尝试过自己configurationProguard,但是我找不到一个不会影响文件大小的configuration(并且我意识到Proguard只在使用Eclipse的导出向导时才运行)与神秘的错误消息,如“1”。 (好吧,整个错误消息是“转换为Dalvik格式失败,错误代码1”,这是几乎没有更多的帮助,因为我找不到任何明确的文档的错误消息,它不告诉我什么我的代码或configuration是造成这个问题…) 所以。 任何有关我如何能得到这个工作的见解?

使用sbt android-plugin编译时间长

我用sbt android-plugin创build了一个演示应用程序。 该应用程序非常简单。 我在/src/main/java/my/package/下放置了一个MainActivity.java文件,当按下button时,它会将您带到第二个Activity但是在Scala完成。 一切工作正常,但构build时间正在杀死我。 当我修改一些我在我的设备上运行使用: > android:package-debug > android:启动设备 我的问题是build立一个两个活动项目需要几乎一分钟的时间。 还有另一种编译和运行的方式吗? 这是我的android:package-debug的输出 > android:package-debug [info]写入/Users/macarse/Documents/demo/target/src_managed/main/scala/my/package/TR.scala [info]编译1个Scala源文件到/ Users / macarse / Documents / demo /target/scala-2.9.0-1/classes … ProGuard,版本4.6 ProGuard是在GNU通用公共许可证下发布的。 因此,您必须确保链接到它的程序(scala,…)也带有GNU通用公共许可证。 或者,您可以申请ProGuard的作者的例外。 读程序目录[/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes]读程序jar [/Users/macarse/.sbt/boot/scala-2.9.0-1/lib/scala -library.jar](过滤)阅读库jar [/Users/macarse/Documents/android-sdk-mac_86/platforms/android-4/android.jar]注意:你忽略了所有的警告! 准备输出jar [/Users/macarse/Documents/demo/target/classes.min.jar]从程序目录复制资源[/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes]复制资源从程序jar [/Users/macarse/.sbt/boot/scala-2.9.0-1/lib/scala-library.jar](过滤)[info] Dexing / Users / macarse / Documents / demo / target / classes。 dex [info]包装/Users/macarse/Documents/demo/target/demo-0.1.apk [成功]总时间:56 s,完成时间2011年10月29日下午4:22:54