问题标签 [sbt-android]

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 回答
608 浏览

android - scala-android 插件

从 IntelliJ 内部运行 sbt 时,我在运行 scala-android 插件时遇到问题。当我从 Mac 终端为同一个项目运行 sbt 时,我没有收到任何错误:

但是当我尝试从 IntelliJ 运行 sbt 时,我得到:

为什么 IntelliJ 内部的 sbt 不选择我设置的路径名称?

0 投票
1 回答
17 浏览

sbt-android - sbt-android 给出“IllegalArgumentException 已经添加...”运行 android:package 进行多项目构建

我有一个root带有actionbarsherlock子项目的 sbt 项目,我无法将其打包到 apk 中。

我能够成功构建这两个项目,但是当我运行时,我从 actionbarsherlock 中的类被 dex'd 两次android:package的任务中得到错误:root/android:dex

我跑了last root/android:dex,发现它既包括intermediates/class.jar根项目也包括子项目:

这解释了 dex 错误,但我不知道如何更改构建以避免这种情况。

我能够在一个更简单的项目上复制这个问题,其中根项目没有源代码和一个简单的构建配置,例如:

和:

这两个项目都有project/build.properties

project/plugins.sbt

文件层次结构如下所示:

我在 sbt 上使用干净结账的典型流程是:

提前致谢!

0 投票
1 回答
40 浏览

scala - 由于 libraryProject 错误,sbt android 不会在示例项目 multiproject-same-dependencies 上运行 android:package

我在提交de0b517处检查了sbt-android 项目源,然后尝试在示例项目中运行该任务。我收到这些错误:android:packagemultiproject-same-dependencies

我一直在关注这个项目中的布局,尝试用两个子模块构建我自己的 android 项目,并且在那里遇到了同样的错误。一个子模块本身就是一个 android 库(我得到一个错误),另一个只是一些没有 android 依赖项的 java 源。

我不知道这是否相关,但在我的系统上,示例项目并不是开箱即用的。我做了这些改变:

  • 添加project/build.properties设置sbt.version=0.13.9
  • 添加project/plugins.sbt设置addSbtPlugin("org.scala-android" % "sbt-android" % "1.6.1")

我意识到可以通过在 中使用全局安装来避免这些更改~/.sbt,但我正在尝试模拟我的实际项目设置,这些设置显式导入这些设置,以便通过最小化环境依赖性使其更加独立和可移植。

如果有帮助,这是build.sbt我的个人项目:

这是定义依赖于另一个android项目和非android项目的android项目的惯用方式吗?

关于我的java安装:

谢谢!

0 投票
1 回答
371 浏览

android - How to use sbt-android to build scala android projects with RenderScript files?

It seems that sbt-android is ignoring the presence of the RenderScript files and is not generating the ScriptC_xxx java classes that are normally generated by gradle builds/Android Studio [UPDATE: this is false, se the update note below]. Because of this issue, the sbt-android build is failing because to use the scripts we need to reference the generated ScriptC_xxx classes, which gives the following error when building:

#xA;

The generated .sbt file from the existing project (which compiles normally by gradle) has the apparent necessary configuration for RenderScript, generated from the build.gradle file:

#xA;

What I am missing to be able to compile renderscript-containing android projects with sbt-android ?

UPDATE: I realized that the java classes for the scripts are being generated correctly, but somehow the classes that use those generated classes cannot find them, so maybe I have a classpath configuration problem.

This is the current file structure:

./asubmodule/src/main/rs/xxx.rs (using package declaration #pragma rs java_package_name(apackage.scripts))

./asubmodle/src/main/java/apackage/YYYClass.java

./asubmodule/target/android/generated/source/android/support/v7/appcompat/R.java

./asubmodule/target/android/generated/source/apackage/scripts/ScriptC_xxx.java

0 投票
0 回答
115 浏览

android - sbt-android 简单示例失败,并显示“[错误] 未找到带有动作 'android.intent.action.MAIN' 的活动”

知道如何解决这个问题吗?

与主分支:

1.6.10 版本: http: //lpaste.net/174900

编辑:

向 local.properties 添加了关键信息(如第 8 点所建议的,现在我得到:

可能是什么问题?

0 投票
1 回答
69 浏览

android - sbt-android:无法在 android 上使用 scala-reflect:找不到 java.rmi.Remote

我正在尝试使用 scala-reflect 包进行 android 开发。我在 build.sbt 中添加了 scala-reflect 依赖项:

但我得到一个例外:

我试图添加和构建项目的java源代码java.rmi.Remotejava.rmi.RemoteException因为android:package --core-librarysbt没有找到dexCoreLibrary选项),它构建成功,但是我得到了运行时错误。

那么,是否可以添加 java.rmi 依赖项,否则 scala.reflect 可以使用它?

我在实现方法 Option.orDefault 的上下文中使用 scala.reflect 库:

如果您知道 Option.orDefault 的更好实现(可能没有 scala.reflect),请告诉我。

0 投票
0 回答
60 浏览

sbt - 如何为多项目和多平台构建 SBT?

我开始一个中型项目,其中包含许多可以在 Android 或 JVM 上运行的独立组件,我想知道如何将它分解为 SBT 项目,以便依赖项表现得很好。这是我到目前为止所得到的:

core/ 用于平台无关的核心代码,不能在任何一个平台上中断,这包括组件启动器的接口

android-core/ 用于实现依赖于 android 库的核心接口(注意,这个项目依赖于sbt-android

jvm-core/ 用于实现依赖于不能很好地使用或依赖于 android 的库的核心接口

到目前为止一切顺利,但现在是时候在各个组件中使用核心项目了。我的要求是:

  • 每个组件都应该编译成一个单独的 Android 应用程序(可能共享一个 aar 库?),并且可以单独安装应用程序(仍然通过 sbt,一个 android:install 任务)
  • 有一个包装器构建,因此所有项目构建都可以在同一个地方完成。
  • 它非常容易扩展,以至于刚毕业的学生可以正确添加组件(如果添加组件不需要对构建进行任何更改,则可以加分)。
  • 如果一个组件依赖于一个特定于平台的库,它不会阻止其他组件被不可知地编译。

我的一些问题是:

  • 每个组件都应该有一个 sbt 项目吗?(我倾向于这样认为,以便学生可以添加对不在两个平台上运行的库的依赖项,但我愿意犯错)
  • 如果是这样,每个组件的项目都需要一个 sbt 构建吗?
  • 如果是这样,我如何引导组件构建以要求组件作者具备最低技能?
  • 稍后我将添加代码生成以从描述中生成消息类(想想 protobuf/thrift),这将希望在组件编译之前作为第一遍运行,我假设这可以完成,但是你呢有一个解释如何的链接?
  • 如果两个组件都针对彼此的消息进行编译,是否会产生不可能的循环依赖?

基本上,我正在寻找智慧和经验,我确信一旦我知道要搜索文档以理解哪些术语以及整个事情想要如何组合在一起,我就可以破解我的方式。谢谢你的帮助!