Недавно я выбрал способ программирования для Android с использованием Scala и Eclipse, который сокращает код и время компиляции без использования Proguard или Treeshake.
Следуя этой статье, я смогу использовать последнюю сборку Eclipse (3.7), почти последнюю версию Scala (2.8.1), обновленную на эмуляторе версии 10, версию 2.8.3 в Eclipse с предоставленным подключаемым модулем. в.
Представленный способ заключается в предоставлении определенной версии образа виртуального диска, куда мы можем загружать библиотеки scala, что значительно сокращает размер кода для загрузки в эмулятор.
Я выполнил шаги, создал hello world, добавил природу Scala, добавил фиктивный класс Scala, переместил сборщик Scala перед установщиком пакетов Android, все строится отлично, но когда я запускаю apk на эмуляторе из Eclipse, приложение вылетает, и я получаю следующую ошибку, которая выглядит как то же, что представлено здесь(в конце документа):
03-29 10:29:38.505: E/AndroidRuntime(839): java.lang.NoClassDefFoundError: upg.TestSinceInstallation.ComputeSum
Если я удалю ссылку на scala в файле активности, все будет работать нормально.
Вот файл TestSinceInstallation.java:
package upg.TestSinceInstallation;
import android.app.Activity;
import android.os.Bundle;
import upg.TestSinceInstallation.ComputeSum;
public class TestSinceInstallationActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int a = 1;
int b = 5;
ComputeSum cs = new ComputeSum(a, b);
if(cs.getResut() == 6) {
setContentView(R.layout.main);
}
}
}
и вот файл ComputeSum.scala
package upg.TestSinceInstallation
class ComputeSum(a: Int, b: Int) {
def getResut() : Int = a + b
}
Как вы думаете, что мне нужно сделать, чтобы все заработало? Я чувствую, что так близко к цели.