“获取运行时”;java.lang.NoClassDefFoundError“;对于在";中编写/定义的活动类;。aar“;文件Android Studio

“获取运行时”;java.lang.NoClassDefFoundError“;对于在";中编写/定义的活动类;。aar“;文件Android Studio,android,aar,Android,Aar,我创建了一个库项目,其中我创建了一个媒体播放器。现在我的目的是让这个媒体播放器在任何Android应用程序中都可以重用,我的意思是我将向任何Android开发人员提供“.aar”文件,然后他/她将其作为依赖项添加到Android项目中,只需在他们的代码中调用MediaPlayerActivity,他们就可以使用它 现在,问题是,如果我使用这个媒体库项目作为项目模块(例如实现项目(“:mymediaplayer”)),那么一切都正常,但当我创建该媒体库的“.aar”文件并尝试将其用作依赖项时(例如

我创建了一个库项目,其中我创建了一个媒体播放器。现在我的目的是让这个媒体播放器在任何Android应用程序中都可以重用,我的意思是我将向任何Android开发人员提供“.aar”文件,然后他/她将其作为依赖项添加到Android项目中,只需在他们的代码中调用MediaPlayerActivity,他们就可以使用它

现在,问题是,如果我使用这个媒体库项目作为项目模块(例如实现项目(“:mymediaplayer”)),那么一切都正常,但当我创建该媒体库的“.aar”文件并尝试将其用作依赖项时(例如实现(名称:'mymediaplayer',ext:'aar')),然后,我将获得MediaActivity.class的运行时“java.lang.NoClassDefFoundError”,该MediaActivity.class编写在我从单独的Android项目调用的同一个库中

下面是我如何使用.aar的步骤--

1] 我将“mymediaplayer.aar”文件复制到android项目的“libs”文件夹中

2] 在项目级build.gradle文件中写入以下代码

    allprojects {
    repositories {
        google()
        flatDir {
            dirs 'libs'
        }
        jcenter()
    }
}
3] 下面是App-level build.gradle文件中的依赖项--

4] 下面是我在Android项目中调用MediaActivity.class的方式--

5] 结果:

 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/my_package/MediaActivity;
我希望提供的信息足以理解我的问题,但如果你们需要更多细节,请告诉我


我发现之前在StackOverflow上针对同一个问题提出了几个问题,但不幸的是,我发现其中没有一个对我有用,这就是为什么我需要你们专家的建议。谢谢

我用传递选项声明了依赖项,如下所示:

dependencies {
  implementation(name: 'mymediaplayer', ext: 'aar') {
    transitive = true
  }
}

然后错误就会消失。

谢谢你的回答,我尝试过,但不幸的是得到了同样的错误。你是否尝试过像这样包含
实现文件树(dir:'libs',include:['*.aar'])
并且你可能必须添加
版本
@Vall0n在这种情况下我得到了“重复类”在我的“mymediaplayer”库中编写的所有类都出现错误。是否尝试从库生成梯度文件中删除
实现文件树(dir:'libs',include:['*.aar'])
。还有
flatDir{dirs'libs'}
repository
部分,或者您可以尝试像这样添加依赖项
实现(groupValue:mymediaplayer:versionValue)
。在您的示例中,您仅依赖于依赖项解析的名称
 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/my_package/MediaActivity;
dependencies {
  implementation(name: 'mymediaplayer', ext: 'aar') {
    transitive = true
  }
}