我找到了一个解决方法,用于在Android的scala中创建库项目和主应用程序,使用Eclipse,我想与您分享。但是,Eclipse的模糊清理过程(最后看到问题)阻止我在我的大项目中实现此功能,此项解决方法目前无法完全运行。
我假设你已经安装了像Eclipse 3.6这样的配置,Scala 2.8.3的插件,最新的Android SDK(18对我来说),treehaker插件
TestScalaLibrary
,新建,使用默认位置,下一步TestScalaLibrary
,程序包名称com.exampleLibrary
,创建名为TestScalaLibraryActivity
的活动,完成使用以下内容在包TestScalaLibraryActivity2
中创建名为com.exampleLibrary
的新scala类:
package com.exampleLibrary
import android.app.Activity
import android.os.Bundle
class TestScalaLibraryActivity2 extends Activity {
override def onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
}
}
删除文件TestScalaLibraryActivity.java
AndroidManifest.xml
android:name=".TestScalaLibraryActivity"
来更新android:name="com.exampleLibrary.TestScalaLibraryActivity2"
testscalalibrary.jar
无法删除而导致构建错误,请通过临时关闭引用此库的项目在eclipse之外手动执行。 TestScala
,新建,使用默认位置,下一步com.exampleApplication
,创建名为TestScalaActivity
的活动TestScalaLibrary
添加为库项目,确定AndroidManifest.xml
并将相对名称android:name=".TestScalaActivity"
替换为其绝对等效值android:name="com.exampleLibrary.TestScalaLibraryActivity2"
以调试模式启动它(如果需要,自己创建一个新配置),它不起作用。
您会收到例外RunTimeException
。
看看LogCat,它最终会告诉你问题的来源。
Caused by: java.lang.ClassNotFoundException: com.exampleLibrary.TestScalaLibraryActivity2 in loader dalvik.system.PathClassLoader
要修复它,我有以下解决方法,我从this blog派生。
在项目TestScala中,使用以下代码创建类TestScalaActivityDummy
:
package com.exampleApplication
class TestScalaActivityDummy {}
以调试模式启动它......它可以工作!
现在是奇怪的部分。
TestScalaActivityDummy.scala
(是的,删除文件),清理项目,让它自动重建。启动它。它仍然有效!为什么在一次清洁,一次启动和一次清洁后出现这些错误?
答案 0 :(得分:1)
解决方案是在没有treegrker的情况下重新开始,而是使用AndroidProguardScala插件: