首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在加载Android项目时调试sbt的失败"java.lang.NumberFormatException: failure :Androd-4“?

如何在加载Android项目时调试sbt的失败"java.lang.NumberFormatException: failure :Androd-4“?
EN

Stack Overflow用户
提问于 2014-12-29 05:09:20
回答 1查看 1K关注 0票数 0

我使用SBT0.12.4用Scala和java编写了一个android项目。当我试图通过sbt加载它时,我会得到一个错误:

代码语言:javascript
复制
$ sbt
[info] Loading project definition from /Users/alex/Documents/projects/android/test2/my_project/project
[error] java.lang.NumberFormatException: For input string: "android-4"
[error] Use 'last' for the full log.
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?

我搜索字符串android-4,但没有找到任何类似于它的东西。也没有其他线索。

我如何找出错误在哪里?或者说,我如何调试它?

last没有帮助:

代码语言:javascript
复制
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? last
[info] Loading project definition from /Users/alex/Documents/projects/android/test2/my_project/project
[debug] Running task... Cancelable: false, check cycles: false
[debug] 
[debug] Initial source changes: 
[debug]   removed:Set()
[debug]   added: Set()
[debug]   modified: Set()
[debug] Removed products: Set()
[debug] Modified external sources: Set()
[debug] Modified binary dependencies: Set()
[debug] Initial directly invalidated sources: Set()
[debug] 
[debug] Sources indirectly invalidated by:
[debug]   product: Set()
[debug]   binary dep: Set()
[debug]   external source: Set()
[debug] All initially invalidated sources: Set()
[debug] Copy resource mappings: 
[debug]   
java.lang.NumberFormatException: For input string: "android-4"
  at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
  at java.lang.Integer.parseInt(Integer.java:449)
  at java.lang.Integer.parseInt(Integer.java:499)
  at scala.collection.immutable.StringLike$class.toInt(StringLike.scala:231)
  at scala.collection.immutable.StringOps.toInt(StringOps.scala:31)
  at sbtandroid.AndroidPath$$anonfun$sbtandroid$AndroidPath$$determineBuildToolsVersion$2$$anonfun$2.apply(AndroidPath.scala:22)
  at sbtandroid.AndroidPath$$anonfun$sbtandroid$AndroidPath$$determineBuildToolsVersion$2$$anonfun$2.apply(AndroidPath.scala:22)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
  at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
  at scala.collection.mutable.ArrayOps.foreach(ArrayOps.scala:38)
  at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
  at scala.collection.mutable.ArrayOps.map(ArrayOps.scala:38)
  at sbtandroid.AndroidPath$$anonfun$sbtandroid$AndroidPath$$determineBuildToolsVersion$2.apply(AndroidPath.scala:22)
  at sbtandroid.AndroidPath$$anonfun$sbtandroid$AndroidPath$$determineBuildToolsVersion$2.apply(AndroidPath.scala:18)
  at scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:52)
  at scala.collection.IndexedSeqOptimized$class.reduceLeft(IndexedSeqOptimized.scala:69)
  at scala.collection.mutable.ArrayOps.reduceLeft(ArrayOps.scala:38)
  at sbtandroid.AndroidPath$.sbtandroid$AndroidPath$$determineBuildToolsVersion(AndroidPath.scala:18)
  at sbtandroid.AndroidPath$$anonfun$settings$5.apply(AndroidPath.scala:40)
  at sbtandroid.AndroidPath$$anonfun$settings$5.apply(AndroidPath.scala:40)
  at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
  at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
  at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$single$1.apply(INode.scala:159)
  at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$single$1.apply(INode.scala:159)
  at sbt.EvaluateSettings$MixedNode.evaluate0(INode.scala:177)
  at sbt.EvaluateSettings$INode.evaluate(INode.scala:132)
  at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$submitEvaluate$1.apply$mcV$sp(INode.scala:64)
  at sbt.EvaluateSettings.sbt$EvaluateSettings$$run0(INode.scala:73)
  at sbt.EvaluateSettings$$anon$3.run(INode.scala:69)
  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
  at java.lang.Thread.run(Thread.java:695)
[error] java.lang.NumberFormatException: For input string: "android-4"
[error] Use 'last' for the full log.
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?

更新:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-30 09:57:34

当您使用最后一次提到AndroidPath.scala:22时得到的堆栈跟踪,所以我会检查tha的源。异常的信息表明字符串android-4不是一个数字,所以在您使用的android插件中,有东西认为包含该字符串的字符串应该只包含数字。

在字符串android-4之后搜索构建配置(可能还有项目目录),用一个数字替换它,看看这是否有帮助。

如果这没有帮助的话:看看指定行的android插件的源代码,看看它在做什么,你就可以找出它(因为我不知道你在使用哪个插件和它的版本)。还可以在调试模式下启动sbt,并在AndroidPath源中添加一个断点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27683694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档