【问题标题】:Include external libraries in your .aar file (a plugin for Unity)在 .aar 文件中包含外部库(Unity 的插件)
【发布时间】:2017-11-10 10:52:38
【问题描述】:

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

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

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

我尝试了各种方法:

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

所以最后我解压了 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 时还有第二个问题,但解决方案是 provided 而不是 compile。

【问题讨论】:

  • 你把aar插件放在哪里了?
  • 在 Assets/Plugins/Android 中(在 Unity 中)
  • 似乎我从 aar 中提取 classes.jar 的解决方案只是部分没问题。我现在想念资源(R类):(
  • 我一直在制作 java 插件,并没有遇到与 aar 插件类似的问题。
  • 您是否在插件中使用了外部库?我尝试使用 github.com/googlesamples/easypermissions 并且它没有在生成的 AAR 中引用,当我尝试将其 AAR 与我的 AAR 一起添加时,Unity 在 classes.jar 副本上失败。

标签: android unity3d aar


【解决方案1】:

检查上面的 cmets。

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

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

【讨论】:

  • 嗨 Piotr,我正在尝试用 Cast API 做一个非常相似的事情。你可以在这里参考我的问题:stackoverflow.com/questions/56043014/…。我想知道“如果您使用外部库就足以添加其 AAR”是什么意思。我尝试通过资源管理器和 Unity 添加它,但没有运气,仍然得到一个找不到类的错误。我还尝试手动导入 .jars 并遇到与您相同的资源问题。您可以提供的任何信息都会很棒!谢谢。
猜你喜欢
  • 2023-03-23
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多