问题标签 [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.
windows - 如何对 Jan Berkel 的 android-plugin 进行更改和应用更改?
正如标题所说,我想知道如何将更改应用到Jan Berkel 的 SBT Android Plugin。
我知道那里说什么...
......我做到了,把这个放进去/target/scala-2.9.1/sbt-0.11.3/
我的问题是,如何将这些更改应用到我当前的 SBT。
顺便说一句,我正在使用Windows 7(我知道,我知道......:D)
android - 有没有办法使用 Scala 将两个或多个 .dex 文件合并为一个 .dex 文件?
我正在对 Jan Berkel 的 SBT Android 插件进行一些黑客攻击,如果有一种方法可以将多个.dex
文件合并到一个.dex
包含所有文件的文件中,我正在徘徊。
例如,如果我有这个:
有没有办法使用 Scala(在某个可接受的时间)将它们合并到一个classes.dex
文件中,该文件将包含所有 3 个文件并具有以下结构:
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
正常运行?
java - 如何使 ProGuard 保留整个(整个)类(带有字段和方法)而不使用“-keep”
如果我有一个 Scala Android 项目并且我在我的 apk 中使用这些方法...
...,在我使用 ProGuard 之后,它将scala.collection.immutable.List
只使用 2 种方法保持类,::
并且:::
.
ProGuard 中是否有一个选项可以将所有 方法和字段保留在一个类中,即使它们当前未使用,但不发送 ProGuard:-keep class scala.collection.immutable.List {*;}
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,但是我对这些东西不是很熟练。
我遇到了这个问题,但这对我不起作用。
当我尝试编译测试应用程序并将其推送到设备时,我得到以下输出:
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 class
orpublic enum
还是其他任何东西。
有没有办法,ProGuard 中的一个选项可以帮助我完成这个?
android - 如何在 SBT 中向 Jan Berkel 的 Android 插件添加更多类似的任务和设置?
我正在尝试为使用SBT的Scala扩展Jan Berkel 的 Android 插件。
我有类似的操作和设置,比如已经定义android:install-device
和android:install-emulator
.
让它们被称为android:dev-install-device
and android:dev-install-emulator
。
我在以下位置添加了新密钥AndroidKeys.scala
:
我还在AndroidLaunch.scala
:
问题是,如果我希望自己的任务可用,我必须注释掉原来的标准任务,而我不想这样做。
有什么我忽略的吗?
更新:
我尝试了不同的设置顺序。
当AndroidFastInstall
出现之前AndroidInstall
,AndroidInstall
无论我调用android:install-device
还是执行android:dev-install-device
。
当AndroidInstall
出现之前AndroidFastInstall
,AndroidFastInstall
无论我调用android:install-device
还是执行android:dev-install-device
。
似乎最后添加的总是覆盖它们之前的可见性。有谁知道这个问题的解决方案?
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
?
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
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 中。