我在为基于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文件中。