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.
