在.aar文件(Unity的插件)中包含外部库



我在为基于EasyPermissions的Unity实现Android插件时遇到了一个问题。问题是由于

Caused by: java.lang.ClassNotFoundException: Didn't find class "pub.devrel.easypermissions.EasyPermissions$PermissionCallbacks"

因为Android Studio没有将相关的类打包到我的AAR文件中。

我尝试了各种方法:

  • 只需在Android Studio中编译,并希望生成的AAR会很好失败
  • 从jCentral下载AAR并将其添加到Unity-失败

所以最后我解压缩了EasyPlugin AAR,并将里面的classes.jar文件添加到Unity中。这奏效了。然而,这是一个相当手动的过程。

我需要在我的gradle文件中添加什么才能自动完成这项工作?

我正在使用:

  • https://github.com/googlesamples/easypermissions
  • Unity 2017.1(应该无关紧要)
  • 安卓工作室2.3.3
  • 使用的渐变任务:构建->组装

我的梯度文件:

apply plugin: 'com.android.library'
android {
compileSdkVersion 26
buildToolsVersion "27.0.0"
defaultConfig {
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
testCompile 'junit:junit:4.12'
compile 'pub.devrel:easypermissions:1.0.1'
provided files('unity/classes.jar')
}

PS。重写UnityPlayerActivity时出现了第二个问题,但解决方案是使用子句而不是compile。

检查以上注释。

如果你使用一个外部库,它足以将其AAR添加到Unity中的Plugins/Android目录中。

出于某种原因,我以一种Unity没有注意到的方式添加了它,而Unity并没有将它添加到生成的APK文件中。

最新更新