标签: aar

Android .aar库接口参数名称丢失

我使用 Android Studio (1.2.2)。我构建了一个 Android 模块库,其中声明了一个接口:

public interface myInterface {
    void onSuccess(String returnedId);

    void onFailure(Exception e);
}
Run Code Online (Sandbox Code Playgroud)

我编译项目并从build/outputs/aar/目录中获取 .aar 文件。然后我使用Import .JAR 或 .AAR package将 .aar 导入到项目中。我将其设置为模块依赖项并将接口导入到我想要使用它的类中。

问题是,当我想使用导入的接口时,自动完成功能不会使用我在构建库时设置的描述性名称来完成接口变量。转到导入的.aar文件中的接口声明,我发现:

public interface myInterface {
       void onSuccess(String var1);

       void onFailure(Exception var1);
 }
Run Code Online (Sandbox Code Playgroud)

我想要的是:

void onSuccess(String returnedId);

我得到什么:

公共无效onSuccess(字符串s){

java android interface aar

5
推荐指数
1
解决办法
1398
查看次数

将gradle依赖添加到库aar包中

我正在为供应商制作一个库项目,它需要 Android Volley 作为依赖项。我已使用此在 Android Studio 中创建 aar 文件来创建 .aar 文件并将其包含在测试项目中,我正在使用此使用“flatDirs”将本地 .aar 文件添加到 Gradle 构建不起作用。该库链接良好,项目编译没有错误。但在运行时测试应用程序崩溃并表示找不到 Volley

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/volley/toolbox/Volley;
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.volley.toolbox.Volley" on path: DexPathList[[zip file "/data/app/in.gridsync.acttest-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Run Code Online (Sandbox Code Playgroud)

我的库项目的 Gradle 文件是这样的

    apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled …
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin aar

5
推荐指数
1
解决办法
1856
查看次数

如何将依赖下的.so文件编译到.aar包中?

我正在开发某些 SDK 来为其他 Android 应用程序提供一些功能。我的 sdk 项目依赖项的一个库项目有一些 .so lib 文件。当我用gradle将我的sdk项目组装成aar包时,我发现不包含.so文件。如何将.so lib文件组装成aar包?

这是sdk项目的build.gradle:

apply plugin: 'com.android.library'

android {
    signingConfigs {
        debug {
            keyAlias 'debug.keystore'
            keyPassword 'ssdebug'
            storeFile file('release-tools/debug.keystore')
            storePassword 'ssdebug'
        }
        release {
            keyAlias 'release.keystore'
            keyPassword 'dddd'
            storeFile file('../seedstore/release.keystore')
            storePassword 'dddd'
        }
    }
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 22
        signingConfig signingConfigs.release
    }

    sourceSets {
        main {
            jniLibs.srcDir file('jni/')
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),      'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.debug
            } …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-gradle-plugin aar

5
推荐指数
1
解决办法
2999
查看次数

将第三方库捆绑到我的 .aar 中

我正在构建一个用于音乐流媒体的 Android 库。它有ExoPlayer作为依赖项(顺便说一句,这是一个优秀的库!)。

我们将此库用于我们现在也在 Xamarin 中开发的另一个项目。目前,我们需要添加两个库(我的 .aar 和 ExoPlayer 的 .jar)。说实话,这有点烦人,我很想把我的 .aar 放进去,然后就可以了。

那么两个问题:

  1. 有没有办法可以使用 gradle 等将 ExoPlayer 捆绑到我的 .aar 中?(我是个初学者,请彻底)
  2. 我意识到这可能不是最好的做法(依赖关系应该由应用程序管理,等等),但实际上,每次更新前者时,我们都会一起测试 ExoPlayer 和我的库。那么,是否有充分的理由我不应该将 ExoPlayer 捆绑到我的库中,或者可以吗?

这是我当前的 gradle 文件。不过,没什么令人兴奋的东西。但是当我将初始应用程序转换为库时,也许有一些奇怪的事情,谁知道呢......

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile ('com.google.android.exoplayer:exoplayer:r1.5.6')
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'
    compile 'com.android.support:appcompat-v7:23.2.0'
}
Run Code Online (Sandbox Code Playgroud)

android jar android-gradle-plugin aar exoplayer

5
推荐指数
1
解决办法
3854
查看次数

IntelliJ IDEA 如何导入.aar?

如何在IntelliJ IDEA中导入aar格式的sdk?或者IntelliJ IDEA只支持jar文件?

sdk android intellij-idea aar

5
推荐指数
0
解决办法
1888
查看次数

如何从gradle依赖中获取.AAR文件?

是否可以从以下 gradle 链接或任何 gradle 链接获取 .AAR 文件?

compile('com.mikepenz:materialdrawer:5.9.0@aar') {
    transitive = true
}
Run Code Online (Sandbox Code Playgroud)

android gradle maven android-library aar

5
推荐指数
1
解决办法
2826
查看次数

如何指定Android aar的版本?

我正在从我的图书馆项目创建 aar。但如果我将其添加到另一个项目中,它将被视为“未指定”。(name="MyLibrary-unspecified") 如果我单击 .aar,它也会显示“未知(版本未知)”。如何正确设置这个?(我将文件命名为 MyLibrary-1.1.0.aar 但这没有帮助)

gradle android-studio aar

5
推荐指数
0
解决办法
1124
查看次数

UnsatisfiedLinkError 找不到“libnative-lib.so”,并且 libnative-lib.so 在 aar 文件中可见

所以我构建了一个 Android aar 库,其中包含一个本机库(libnative-lib.so)。出于向后兼容性的考虑,它仅针对armeabi 和x86 架构构建。

现在,我放置 aar 文件并在我的“客户端”应用程序中使用它,我可以清楚地看到 libnative-lib.so 位于 aar 的 jni/armeabi 和 jni/x86 文件夹下。

但应用程序崩溃并显示以下消息:

java.lang.UnsatisfiedLinkError: ...
nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]] couldn't find "libnative-lib.so"
Run Code Online (Sandbox Code Playgroud)

这看起来客户端应用程序无法从 aar 找到 nativelib。有什么建议么?

android-ndk aar

5
推荐指数
1
解决办法
9437
查看次数

当两个库坚持使用相同的命名空间时该怎么办?

在我的 Android 项目中,我有 2 个库都依赖于 WebRTC。这两个库都强制包含 WebRTC。这两个库都不会重命名 WebRTC 库(尽管有自定义)。两位开发人员都坚持认为必须以这种方式强制包含 WebRTC(我对此非常怀疑)。

如何解决这种依赖冲突?

我已经尝试过如下所述的解决方案: https:
//medium.com/mindorks/avoiding-conflicts-in-android-gradle-dependency-28e4200ca235 但这特别需要依赖项是可传递的。在我的例子中,哪些硬包含库不是。如果我调用gradlew dependenciesWebRTC 甚至不会出现在该列表中。但在编译时,我Multiple dex files define Lorg/webrtc/VideoFileRenderer$2;每次编译时都会收到错误,例如“VideoFileRenderer”与 org.webrtc 是不同的文件。清理构建树或缓存没有解决任何问题。

有问题的图书馆是:

这两个库在运行时永远不会同时使用。我只需要在编译时包含两者。此外,每个用户在注册时仅进行一次视频通话以证明自己的身份。

android gradle webrtc aar

5
推荐指数
1
解决办法
1222
查看次数

Android 库 (aar) 的 asset/ 目录中的资源

基于Android库的注意事项

库模块不能包含原始资源

我创建了一个示例 android 库模块,其中包含资产(不在应用程序模块中),然后生成 aar 文件。我分析了生成的 aar 文件,瞧,assets/ 文件夹仍然存在,所有文件都完好无损。

那么,到底是允许还是不允许呢?

android assets android-library aar

5
推荐指数
1
解决办法
7880
查看次数