Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java sbt:对象应用程序不是包的成员_Java_Android_Scala_Sbt_Sbt Android Plugin - Fatal编程技术网

Java sbt:对象应用程序不是包的成员

Java sbt:对象应用程序不是包的成员,java,android,scala,sbt,sbt-android-plugin,Java,Android,Scala,Sbt,Sbt Android Plugin,我成功地从中构建了仅Scala的项目模板。接下来,我尝试将一些Java源代码添加到我的项目中,在TR.scala中出现以下错误。TR.scala是从Java源代码生成的文件 [info] Compiling 2 Scala sources and 5 Java sources to D:\Workspaces\MyProject\my-project\target\scala-2.9.0-1\classes... [error] D:\Workspaces\MyProject\my-projec

我成功地从中构建了仅Scala的项目模板。接下来,我尝试将一些Java源代码添加到我的项目中,在TR.scala中出现以下错误。TR.scala是从Java源代码生成的文件

[info] Compiling 2 Scala sources and 5 Java sources to D:\Workspaces\MyProject\my-project\target\scala-2.9.0-1\classes...
[error] D:\Workspaces\MyProject\my-project\target\src_managed\main\scala\com\mydomain\myproject\TR.scala:2: object app is not a member of package com.mydomain.myproject.android
[error] import android.app.Activity
[error]                ^
[error] D:\Workspaces\MyProject\my-project\target\src_managed\main\scala\com\mydomain\myproject\TR.scala:3: object view is not a member of package com.mydomain.myproject.android
[error] import android.view.View
[error]                ^
[error] two errors found
[error] {file:/D:/Workspaces/MyProject/my-project/}My Project/compile:compile: Compilation failed
[error] Total time: 5 s, completed Oct 12, 2011 11:20:55 AM

好吧,你没有说你到底做了什么(“添加一些Java源代码”?怎么样?剪切粘贴代码?哪段代码?在哪里?什么?),这使得很难给出一个好的答案。但是,从错误消息中可以看出,解释其实很简单

当您执行“导入android.app.Activity”时,它会给出一个错误。这可能就是您提到的Java源代码吗?嗯,我不知道。但是我知道你要么导入了,要么在包
com.mydomain.myproject.android
,因为它在消息中这么说。换言之,您有以下情况之一:

package com.mydomain.myproject.android
import com.mydomain.myproject._
import com.mydomain.myproject.android
在其他导入之前。这意味着以下两条线是等效的:

import android.app.Activity
import com.mydomain.myproject.android.app.Activity
这可能不是你想要的。您希望
android.app.Activity
成为绝对参考,对吗?嗯,事实并非如此。您可以将其设置为绝对值,如下所示:

import _root_.android.app.Activity
或者你的项目中不能有一个名为
android
的软件包。

多亏了Yifan Yu在Google Group中的贡献,它似乎是一个bug。感谢Jan Berkel修复了中的错误

您有一个名为
com.mydomain.myproject.android的包路径,所以
当编译器试图在中编译
TR.scala
时,会使编译器感到困惑 “com.mydomain.myproject”,因为它认为“android.whatever”是一个 相对路径。插件尝试将
\u root.
前置到
活动
它生成的源代码,但它忘记为
TR.scala执行此操作。


几年后,我遇到了一个类似的错误,重新命名android软件包成功了。这是通过libgdx代码使用较新的androidsdk插件代码。