Приложение андроид состоит из 3х модулей
JavaLib ( java библиотека без зависимостей от android )
|
AndroidLib ( android библиотека )
|
AndroidApp ( приложение )
В AndroidLib определена BaseActivity
public class BaseActivity extends Activity
{
}
при таком определении все запускается корректно
но если сделать так
public class BaseActivity extends Activity implements IJavaLibInterface
{
}
компилиться нормально, но при запуске сразу падает
Unable to instantiate activity ComponentInfo{com.example/com.example.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.MainActivity" on path: /data/app/com.example-2.apk
Т.е. падать начинает когда у BaseActivity в AndroidLib появляется связь с JavaLib.
Если тот же интерфейс IJavaLibInterface объявить в AndroidLib, то все ок.
В чем может быть дело ?
build.gradle описаны так :
JavaLib
apply plugin: 'java'
( может этого не достаточно что-то еще нужно добавить ? )
AndroidLib
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android-library'
dependencies {
compile project (':JavaLib')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
AndroidApp
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile project (':JavaLib)
compile project (':AndroidLib')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
в корне build.gradle пустой и
settings.gradle содержит
include ':JavaLib,':AndroidLib, ':AndroidApp'