当服务类属于不同的模块时,从服务类调用它

时间:2016-09-24 15:37:50

标签: android service module

我有两个模块应用程序和库。我在app模块中有MusicMainActivity类,在库模块中有Notification服务类。现在我想从服务类调用MusicMainActivity。我尝试使用

   Intent in-new Intent(this,packagename.MusicMainActivity.class);

以及

  Intent in-new Intent(this,MusicMainActivity.class);

但是这显示了MusicMainactivity的错误。

错误:(326,48)错误:找不到符号类MusicMainActivity 错误:任务':执行失败:library:compileReleaseJavaWithJavac'。

  

编译失败;有关详细信息,请参阅编译器错误输出。

库模块gradle文件 申请插件:' com.android.library'

   android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"

    ndk {
        abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
    }

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
   }
 }

  dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile files('libs/aacdecoder-android-0.8.jar')
 }

app moudle gradle file

   apply plugin: 'com.android.application'

   android {
compileSdkVersion 22
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "com.adio"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"

}
   buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'),         'proguard-rules.pro'
    }
   }
  }

    repositories {
      flatDir {
    dirs 'libs'
   }
  }

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':library')
compile 'com.google.firebase:firebase-messaging:9.0.0'

  }
apply plugin: 'com.google.gms.google-services'

1 个答案:

答案 0 :(得分:0)

您需要将app模块添加为库模块的依赖项。您可以通过手动编辑库模块的build.gradle文件,添加行

来完成此操作
compile project(':app')

或者您可以使用Android Studio中的“模块设置”对话框。

或者,您可以配置一个意图过滤器,该过滤器允许您在不在库模块中明确使用其类名的情况下启动您的活动。有关详细信息,请参阅Intents and Intent Filters。这种选择实际上更可取,因为它更灵活。