标签: aar

如何构建和 maven 发布 flutter aar?

我正在开发一个 flutter 项目,并用它构建 aar。我可以按照 flutter 提供的说明将这个 aar 集成到我的本机 android 项目中。但我的问题是这个aar是本地集成的。我想通过 maven 发布这个 aar,以便团队成员可以轻松访问它。

publishing在年级任务的帮助下可以从本机库发布。但对于 flutter 库,我不确定我们应该做什么。所以,我需要这方面的帮助。

android gradle aar maven-publish flutter

6
推荐指数
1
解决办法
2597
查看次数

如何在flutter插件中导入AAR文件?

我正在使用 flutter 插件,想要.aar在插件的 android 部分导入一个项目。我尝试打开 android 项目并.aar通过导入模块来导入项目,包括它setting.gradle并添加它的依赖项build.grade(就像任何其他本机 android 项目一样)。但是,当我运行flutter项目时,.aar找不到该项目。

我得到的错误是

评估项目“:flutter_plugin_andriod”时出现问题

在项目“:flutter_plugin_andriod”中找不到路径为“:commonlib”的项目。

在此输入图像描述

有人解决了吗?

aar flutter flutter-dependencies flutter-plugin

6
推荐指数
1
解决办法
8708
查看次数

Android库声明样式运行时错误

我有一个库,在maven中心有一些小部件.当我将该库作为依赖项(从maven中心)添加到使用gradle的项目时,我得到:

java.lang.NoClassDefFoundError: com.my.pacakge.R$styleable
Run Code Online (Sandbox Code Playgroud)

如果我手动下载.aar并将其包含在项目中,一切正常.我尝试使用Android Studio的代码完成来查看是否R包含了库.当我使用maven依赖时,键入不com.my.pacakge.R返回任何结果,但是当我使用本地.aar时,它返回R库的库.

这是库代码:

// widget constructor
public ForegroundImageView(Context context, AttributeSet attrs) {
    super(context, attrs);

    TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ForegroundImageView);
    Drawable foreground = a.getDrawable(R.styleable.ForegroundImageView_android_foreground);
    if (foreground != null) {
        setForeground(foreground);
    }
    a.recycle();
}

// attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="ForegroundImageView">
        <attr name="android:foreground"/>
    </declare-styleable>
</resources>
Run Code Online (Sandbox Code Playgroud)

android maven android-build android-gradle-plugin aar

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

运行时的NoClassDefFoundError在Android Studio中的.AAR类中

我已经研究了很多小时关于可能的解决方案,但无论我尝试它只是失败.这是解释的情况:

我在Android Studio上有这个库项目,它生成app-debug.aar文件.然后我在实现项目中添加这个新模块,按照向导导入.JAR/.AARs我选择.aar并更新:app项目结构中的依赖项.

一旦清理了项目(甚至使用./gradlew clean--Mac OS X),我可以在任何活动中引用该类及其方法.

现在,在运行时,一旦在真实设备上构建和安装,应用程序将崩溃抛出上述运行时异常.

注意:我正在导入,.aar因为我需要保护代码,它有资源,所以一个.jar是不可能的.如果我导入库模块(使用源代码而不是所有代码.aar),则应用程序在运行时没有问题.

我已经尝试了所有的东西,如果有人能够对这可能会有所了解,那么我将非常感激.

该类扩展ViewGroup并在运行时实例化,以防任何事情.代码是给我的,所以除非绝对必要,否则可能无法进行重大改变.

先谢谢大家!

阿曼多

java android gradle android-studio aar

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

本地AAR文件不管理依赖项

我曾经使用过一个使用Retrofit和Joda DateTime的Android库(一个API客户端).

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'joda-time:joda-time:2.8.1'
}
Run Code Online (Sandbox Code Playgroud)

现在库已经完成,我将它编译成AAR文件,我想在应用程序中使用它,所以我将它添加到应用程序的libs文件夹中,并将其包含在build.gradle文件中,如下所示:

dependencies {
    compile(name:'s3papiandroidclient', ext:'aar')
    //Some other things
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从库初始化API客户端时,应用程序在从RetroFit或DateTime调用对象时崩溃(例如,retrofit.RestAdapter).看起来Gradle没有从AAR库中读取依赖项,因此不会在我的应用程序中安装Retrofit和DateTime.我试图transitive=true在我的AAR文件上使用该参数,但没有帮助.

其他可能有帮助的点,我试图生成一个POM文件,并且依赖项也没有出现在其中.看起来这些事情真的发生了,我完全坚持了.

我能找到的唯一解决方法是手动将AAR文件中的依赖项添加到应用程序的build.gradle文件中,但它没有意义,我假设Gradle可以自己导入依赖项!

问候,

Gyoo.

dependencies android gradle aar

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

从AAR排除课程

我有一个“基础”库,提供了纯Java代码,现在我想在此基础上创建一个Android库。假设两个库都有一个Log类。当我构建aar并将其嵌套在项目中时,我可以选择要导入的Log类(为了防止这种情况,我只应显示Android库中的Log类)。建立Aar时是否有机会排除库?这是gradle(我尝试了很多,但没有任何帮助)。

buildscript {

    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}

apply plugin: 'com.android.library'


repositories {
    jcenter()
}


android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 9
        versionName "0.0.9"
        project.archivesBaseName = "andcommon"
        project.version = android.defaultConfig.versionName
    }

    packagingOptions {
//        exclude 'res'
    }

//    configurations {
//        compile.exclude group: 'com.pepperonas.jbasx'
//    }
//    sourceSets {
//        main {
//            java {
//                exclude '**/Log.java'
//            }
//        }
//    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7 …
Run Code Online (Sandbox Code Playgroud)

android gradle aar

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

如何将aar库上传到Nexus?

我有一个Android应用程序的Android aar库.它与直接包含在Android项目中的aar库一起正常工作.我想将此库移动到我的内部Nexus maven存储库,以便其他开发人员也可以使用该库.

如何将aar上传到Nexus(Maven存储库)?在Web界面中没有明显的选项:

Nexus网络界面

android nexus maven android-gradle-plugin aar

5
推荐指数
2
解决办法
7063
查看次数

如何从Android Studio中删除.aar文件

.aar在Android Studio中添加了文件.它造成了一些冲突.现在我想删除此.aar文件,但我无法找到删除此文件的任何选项.

我也搜索了这个,但无法找到删除.aar文件的任何解决方案

android android-layout aar

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

如何使用Proguard混淆android库(.aar)?

我想使用proguard 混淆.aar库,以进行分发,我尝试了许多Internet解决方案,但到目前为止没有任何效果,仅混淆了一些代码。有人可以帮我解决问题吗?

obfuscation android android-library aar android-proguard

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

如何将maven清单添加到指定依赖关系的AAR

我(最终)能够使用指南将我的Android库发布到AWS S3 maven存储库.它作为AAR而不是JAR文件发布,这意味着即使生成的POM文件列出了其所有内部依赖项,在将库添加到另一个项目时也会忽略它们.似乎是一个非常常见的问题.我从知道这个,我只需要列出一个清单的Maven的依赖关系,但如何做到这一点?

我真的是新手,所以越简单越好......谢谢!

注意:我也发现了这个问题,所以我在依赖实现行的末尾添加了"{transitive = true}"并且它有效.

所以现在要成功包含我的库,依赖项必须编码为:

implementation (group: 'com.mygroup', name: 'my_library', version: '1.3', ext: 'aar', classifier: 'release') { transitive=true changing=true }
Run Code Online (Sandbox Code Playgroud)

(我包括"changing = true"以强制它每次重新下载库.)

如果我不包含"transitive = true",我会收到以下错误:

    02-04 20:11:48.462 10225-10225/com.mydomain.app.testapplication4 E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
    02-04 20:14:07.080 10225-10225/com.mydomain.app.testapplication4 E/dalvikvm: Could not find class 'android.app.NotificationChannel', referenced from method com.mydomain.library.mydomain$1.onReceive
    02-04 20:14:07.290 10225-10225/com.mydomain.app.testapplication4 E/AndroidRuntime: FATAL EXCEPTION: main
        java.lang.NoClassDefFoundError: com.google.firebase.iid.FirebaseInstanceId
            at com.mydomain.library.MyActivity.onCreate(MyActivity.java:88)
            at android.app.Activity.performCreate(Activity.java:4701)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1051)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924) …
Run Code Online (Sandbox Code Playgroud)

java android maven aar

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