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

时间:2017-11-10 10:52:38

标签: android unity3d aar

我在基于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 - FAIL

所以最后我解压缩了EasyPlugin AAR并取出了里面的classes.jar文件并将其添加到Unity中。这工作。但它是一个非常手动的过程。

我需要添加到gradle文件中以便自动完成这项操作的一点点是什么?

我正在使用:

我的Gradle文件:

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时出现了第二个问题,但为此提供了一个提供而不是编译的子句。

1 个答案:

答案 0 :(得分:1)

检查以上评论。

如果您使用外部库,则可将其AAR添加到Unity中的Plugins / Android目录中。

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