Indeed, it works. The skeleton I got was using android-sdk-plugin 1.2.6, upgrading to 1.2.13 made the trick.
2014-04-17 22:24 GMT+02:00 Perry Nguyen <[email protected]>: > You can investigate further by doing things like aapt d resources > package.apk and comparing the res-id's with the values in R.txt/java in the > various projects > > > On Thu, Apr 17, 2014 at 1:24 PM, Perry Nguyen <[email protected]> wrote: > >> This sort of thing generally works fine for me; I haven't encountered any >> missing resource exceptions in a similar configuration. >> >> >> On Thu, Apr 17, 2014 at 1:07 PM, Samuel Tardieu <[email protected]> wrote: >> >>> I am trying to create a project with two sub-projects: one of them is an >>> apklib, the other one uses it (in the future, more applications will make >>> use of this library). The library has some string resources, and the >>> library contains an activity that references them. >>> >>> My project/Build.scala looks like this: >>> >>> import sbt._import sbt.Keys._import android.Keys._import >>> android.Dependencies.LibraryProject >>> object DropBuild extends Build { >>> >>> lazy val commonSettings = Seq( >>> scalaVersion := "2.10.4", >>> version := "0.1", >>> scalacOptions := Seq( >>> "-target:jvm-1.6", "-deprecation", "-feature" >>> ), >>> javacOptions ++= Seq( >>> "-source", "1.6", >>> "-target", "1.6"), >>> proguardCache in Android ++= Seq(ProguardCache("org.scaloid") % >>> "org.scaloid"), >>> proguardOptions in Android ++= Seq("-dontobfuscate", "-dontoptimize"), >>> libraryDependencies ++= Seq("org.scaloid" %% "scaloid" % "3.1-8-RC1", >>> "org.scala-lang" % "scala-library" % "2.10.1") >>> ) >>> >>> lazy val appSettings = android.Plugin.androidBuild(dropapi) ++ >>> Seq( >>> localProjects in Android += LibraryProject(dropapi.base), >>> run <<= run in Android, >>> install <<= install in Android >>> ) >>> >>> override lazy val settings = super.settings :+ { >>> shellPrompt := { >>> s => Project.extract(s).currentProject.id + "> " >>> } >>> } >>> >>> lazy val root = Project("root", file(".")) >>> .aggregate(dropapi, dropscanner) >>> >>> lazy val dropapi = Project("dropapi", file("DropAPI")) >>> .settings(android.Plugin.androidBuildApklib: _*) >>> .settings(commonSettings: _*) >>> .settings(name := "dropapi", >>> organization := "rose.dropsnroses.api") >>> >>> lazy val dropscanner = Project("dropscanner", file("DropScanner")) >>> .settings(commonSettings: _*) >>> .settings(appSettings: _*) >>> .settings(name := "DropScanner", >>> organization := "rose.dropsnroses.dropscanner" >>> ) >>> .dependsOn(dropapi) >>> } >>> >>> However, it looks like the resources are not merged properly, as the >>> strings defined in the library (dropapi) cause a “resource not found” >>> exception: >>> >>> E/AndroidRuntime(22370): FATAL EXCEPTION: main >>> E/AndroidRuntime(22370): Process: rose.dropsnroses, PID: 22370 >>> E/AndroidRuntime(22370): android.content.res.Resources$NotFoundException: >>> String resource ID #0x7f020008 >>> E/AndroidRuntime(22370): at >>> android.content.res.Resources.getText(Resources.java:255) >>> >>> Any idea of what could be wrong? Is there anything else to do in order >>> to use the resources from the library into the application? >>> Sam >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "scala-on-android" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- > You received this message because you are subscribed to the Google Groups > "scala-on-android" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "scala-on-android" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
