问题标签 [sbt-android-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

windows - 如何对 Jan Berkel 的 android-plugin 进行更改和应用更改?

正如标题所说,我想知道如何将更改应用到Jan Berkel 的 SBT Android Plugin

我知道那里说什么...

......我做到了,把这个放进去/target/scala-2.9.1/sbt-0.11.3/

我的问题是,如何将这些更改应用到我当前的 SBT。

顺便说一句,我正在使用Windows 7(我知道,我知道......:D)

0 投票
4 回答
5402 浏览

android - 有没有办法使用 Scala 将两个或多个 .dex 文件合并为一个 .dex 文件?

我正在对 Jan Berkel 的 SBT Android 插件进行一些黑客攻击,如果有一种方法可以将多个.dex文件合并到一个.dex包含所有文件的文件中,我正在徘徊。

例如,如果我有这个:

有没有办法使用 Scala(在某个可接受的时间)将它们合并到一个classes.dex文件中,该文件将包含所有 3 个文件并具有以下结构:

0 投票
1 回答
256 浏览

android - SBT Android-Plugin 中“proguardInJars”的语义是什么?

在 SBT Android 插件中,在 proguardTask 中,有一个 value proguardInJars
在我的简单测试项目中,它包含C:\Users\Administrator\.sbt\boot\scala-2.9.1\lib\scala-library.jar.

然后将它与我自己编译的类组合成另一个值inJars

但是,它是通过附加一些东西来组合的。这是来自 jberkel/android-plugin 的代码:

我想知道是否有人知道添加的东西的语义。
另外,如果我要分解inJars成单独的值,我是否还需要附加清单内容proguardInJars才能proguardTask正常运行?

0 投票
1 回答
795 浏览

java - 如何使 ProGuard 保留整个(整个)类(带有字段和方法)而不使用“-keep”

如果我有一个 Scala Android 项目并且我在我的 apk 中使用这些方法...

...,在我使用 ProGuard 之后,它将scala.collection.immutable.List只使用 2 种方法保持类,::并且:::.

ProGuard 中是否有一个选项可以将所有 方法和字段保留在一个类中,即使它们当前未使用,但不发送 ProGuard:-keep class scala.collection.immutable.List {*;}

0 投票
1 回答
509 浏览

android - 如何在 SBT/Android 插件/项目中更改 Scala 版本?

我正在使用带有 jberkel/android-plugin 的 SBT v0.13,我正在尝试对其进行修改。

为此,我需要在我的测试项目中 使用Scala 2.10.0-20120710-144914-026a70d555 。

到目前为止,我使用的是Scala 2.9.1,现在需要切换到2.10.0-20120710-144914-026a70d555,但是我对这些东西不是很熟练。

我遇到了这个问题,但这对我不起作用。

当我尝试编译测试应用程序并将其推送到设备时,我得到以下输出:

0 投票
1 回答
1243 浏览

java - ProGuard 的“保持”论点的概括

ProGuard在这里定义了它的“保留”语法。

是否可以继续使用广义修饰符和类型?
例如-keep * * my.package.MySomething { *; } The 1st*表示任何来自 this part:的内容[!]public|final|abstract|@ ...],而
2nd*表示来自 this part:的任何内容[!]interface|class|enum

更深入一点,我正在尝试动态生成 ProGuard 参数,但我不知道my.package.MySomething是 an abstract classorpublic enum还是其他任何东西。

有没有办法,ProGuard 中的一个选项可以帮助我完成这个?

0 投票
1 回答
204 浏览

android - 如何在 SBT 中向 Jan Berkel 的 Android 插件添加更多类似的任务和设置?

我正在尝试为使用SBTScala扩展Jan Berkel 的 Android 插件

我有类似的操作和设置,比如已经定义android:install-deviceandroid:install-emulator.
让它们被称为android:dev-install-deviceand android:dev-install-emulator

我在以下位置添加了新密钥AndroidKeys.scala

我还在AndroidLaunch.scala

问题是,如果我希望自己的任务可用,我必须注释掉原来的标准任务,而我不想这样做。

有什么我忽略的吗?


更新:
我尝试了不同的设置顺序。

AndroidFastInstall出现之前AndroidInstallAndroidInstall无论我调用android:install-device还是执行android:dev-install-device


AndroidInstall出现之前AndroidFastInstallAndroidFastInstall无论我调用android:install-device还是执行android:dev-install-device

似乎最后添加的总是覆盖它们之前的可见性。有谁知道这个问题的解决方案?

0 投票
2 回答
1021 浏览

scala - 在 SBT 中从 sbt.package.File 转换为 java.io.File

我正在为 SBT 扩展 Jan Berkel 的 Android 插件。

现在,我想知道,我怎样才能转换sbt.SettingKey[sbt.package.File]java.io.File?有没有办法从中java.io.File提取sbt.SettingKey[sbt.package.File]

例如:

我有一个功能:

期望java.io.File作为一个论点。

我有一个sbt.SettingKey[sbt.package.File](命名myFileKey)映射到我File需要的。

我如何调用isUpToDate映射到的文件myFileKey

0 投票
1 回答
137 浏览

scala - 如何使用 SBT 下载用户提供的 Scala 版本?

我正在尝试编写一个新类,同时扩展 Jan Berkel 的 Android 插件,我想使用它提供将整个 scala 库推送到有根手机的功能。

到目前为止,我的代码使用了您已经下载到计算机上的本地版本的 Scala,但是,如果它不存在,我希望能够下载一个版本的 Scala。

这是代码的相关部分:

例如,像这样调用我的函数:
makePermission("2.9.1")将看到我有 Scala 2.9.1 并在scala-2.9.1文件夹中创建 scala-library.xml。

这样做:
makePermission("2.8.1")会看到我没有 Scala 2.8.1,下载它并在scala-2.8.1文件夹中创建 scala-library.xml。

但是,这样做:
makePermission("3.0.0")会看到我没有 Scala 3.0.0,尝试下载它但看到它不存在并跳过其余部分。

我很困惑如何做这TODO部分,所以任何帮助表示赞赏。:D

0 投票
1 回答
652 浏览

java - Scala 的另一个“无法实例化活动 ComponentInfo”

我正在尝试在没有 ProGuard 步骤的情况下创建和测试一个用 Scala 编写的简单虚拟 Android 应用程序(useProguard := false)。


我已将 scala 库推送到/system/framework
/system/framework/scala-library-2.9.1.jar

和一个权限文件/system/etc/permissions
/system/etc/permissions/scala-library-2.9.1.xml


权限xml的内容:


这是我的MainActivity.scala


这是我的AndroidManifest.xml


我设法在不使用 ProGuard 的情况下将它安装在我的设备上,但是,当我尝试运行它时,出现以下异常(使用 logcat 捕获):



有谁知道错误可能在哪里以及如何解决它?

先谢谢了

顺便说一句,可能是被推送的 scala 库有问题吗?
Logcat 说它找不到scala.ScalaObject,但它存在于我推送的 jar 中。