标签: aar

在Android Studio中导入Urban Airship会产生编译问题吗?

我是Android Studio的新手,我想在我的一个项目中实现Urban Airship.我在他们的网站上使用.aar文件跟踪了示例,我最终得到了这个错误.

Error: [/Users/AndroidstudioProjects/MyApplication/app/build/intermediates/exploded-aar/com.urbanairship/urbanairship-lib/5.1.0/AndroidManifest.xml:8]
Invalid instruction 'overrideLibrary', valid instructions are : REMOVE,REPLACE,STRICT
Run Code Online (Sandbox Code Playgroud)

如果我错了,请纠正我,但这是否意味着他们的清单文件中存在问题?还是我完全是蓝色的?如果是这样,有没有人有一个如何实现它的好例子?

android android-manifest urbanairship.com android-studio aar

4
推荐指数
1
解决办法
2531
查看次数

Maven中的传递AAR依赖项

我正在使用android-maven-plugin的Maven项目构建Android应用程序.在这个项目中,我正在使用新的beta数据绑定库.

它包含在Android SDK的本地m2repository中(extras/android/m2repository).此存储库中的库打包为aar类型.

我可以像这样在我的pom中添加依赖项:

    <dependency>
        <groupId>com.android.databinding</groupId>
        <artifactId>library</artifactId>
        <version>1.0-rc1</version>
        <type>aar</type>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但构建失败了:

无法在项目演示中执行目标:无法解决项目com.simpligility.android:demo:apk:1.0.0的依赖项:未能在文件中找到com.android.support:support-v4:jar:21.0.3:/ // Users/eppleton/Java Libraries/android-sdk-macosx/extras/android/m2repository缓存在本地存储库中,直到android-local-extras的更新间隔已经过去或强制更新后才会重新尝试解析 - > [帮助1]

在本地存储库中没有support-v4:jar是正确的,因为API版本20有支持-v4:aar.

有没有办法让maven找到aar而不是jar?

Ps:对于我自己的本地构建,我有几个解决方法(例如重新打包为jar),但我更喜欢更通用的解决方案,因为我想在maven原型中共享配置,我不想要求用户做很多手工工作.现在这是我的最佳解决方案:

    <dependency>
        <groupId>com.android.support</groupId>
        <artifactId>support-v4</artifactId>
        <version>21.0.3</version>
        <scope>system</scope>
        <systemPath>${android.sdk.path}/extras/android/support/v4/android-support-v4.jar</systemPath>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

但它不是很好,传递依赖性解决,因为aar会更好.

android packaging jar maven aar

4
推荐指数
1
解决办法
1130
查看次数

Gradle:如何将存储库中的依赖项包含到输出aar文件中

我正在尝试在Android Studio中构建一个arr包.此软件包包含Zendesk的dependecies:

allprojects {
    repositories {
        maven { url 'https://zendesk.artifactoryonline.com/zendesk/repo' }
    }
}

compile (group: 'com.zendesk', name: 'sdk', version: '1.7.0.1') {
    transitive = true
}

compile (group: 'com.zopim.android', name: 'sdk', version: '1.3.1.1') {
    transitive = true
}
Run Code Online (Sandbox Code Playgroud)

我想为Unity3d项目构建这个包.此软件包应包含Zendesk的所有依赖项(transitive = true属性).当我打开aar文件时,Zendesk没有依赖关系.怎么了?

android unity-game-engine gradle maven aar

4
推荐指数
2
解决办法
1万
查看次数

如何在android中将proguard应用到AAR库?

我开发了一个Android AAR库,其中包含客户所需的所有功能,我想在将其交付给客户之前在库上应用proguard,以便混淆代码,使代码不容易反编译。

在发布这个问题之前我用谷歌搜索了它,我发现库项目本身不运行 ProGuard,因此它们不使用任何配置,如此处提到的单击此处

我已经完成了以下配置,以便在我的库项目上应用 proguard。

buildTypes {

    debug {
        shrinkResources false
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

我已应用此规则proguard-rules.pro

 -keepparameternames
 -renamesourcefileattribute SourceFile
 -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

 -keep public class * {
public protected *;
 }

 -keepclassmembernames class * {
java.lang.Class class$(java.lang.String);
java.lang.Class class$(java.lang.String, boolean);
 }

 -keepclasseswithmembernames class * {
native <methods>;
 }

 -keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
 }

 -keepclassmembers class * implements …
Run Code Online (Sandbox Code Playgroud)

android proguard decompiler aar

4
推荐指数
1
解决办法
5524
查看次数

在Gradle 4.x中使用api使用aar库导致缺少依赖项

当我使用*.aar文件而不是使用Gradle 4.x的模块构建应用程序并遵循有关implementsapi文档时,我希望使用api包含的aar文件包含所有依赖项,但它没有.

当你这样做

git clone https://github.com/hannesa2/aar_dependency
./gradlew clean assembleDebug
Run Code Online (Sandbox Code Playgroud)

手段

dependencies {
    api project(':mylibrary')
Run Code Online (Sandbox Code Playgroud)

它工作正常.

但是当我使用lib-module的insted时,先前生成的*.aar文件作为依赖

 dependencies {
    api 'com.example.my.mylibrary:mylibrary-debug@aar'
Run Code Online (Sandbox Code Playgroud)

(在演示应用程序中)

git checkout with_aar
./gradlew clean assembleDebug
Run Code Online (Sandbox Code Playgroud)

我碰到了这个

任务:app:transformClassesWithDesugarForDebug线程"main"中的异常java.lang.TypeNotPresentException:在sun.invoke.util.BytecodeDescriptor的sun.invoke.util.BytecodeDescriptor.parseSig(BytecodeDescriptor.java:85)中输入不存在的io.reactivex.ObservableTransformer .parseMethod(BytecodeDescriptor.java:63)位于com.google.devtools的java.lang.invoke.MethodType.fromMethodDescriptorString(MethodType.java:1067)的sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:41).在org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(未知来源)的org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(未知来源)的build.android.desugar.LambdaDesugaring $ InvokedynamicRewriter.visitInvokeDynamicInsn(LambdaDesugaring.java:399)

因为我将这些aar工件上传到我们的Maven Nexus公司时遇到了这个问题,所以我创建了这个demo-repo以准确显示出错了什么.在演示应用程序或使用Maven我看到同样的问题.

有人知道我做错了吗?

android module android-gradle-plugin aar

4
推荐指数
1
解决办法
1754
查看次数

如何在AndroidStudio项目中添加和使用AAR

我正在尝试在我的android项目中使用自定义aar。我在StackOverflow和Web中找到了许多示例。许多构建失败,没有一个起作用。最清晰的网址http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/
最接近工作的地方。

这就是我所做的

  1. 从Ref.java成功创建了一个非常简单的AAR(Ref.aar)

    // Ref.java  
    package com.ramrod.Ref;  
    public class Ref {
        // Square an integer
        public static int
        square(int val) {
            return (val * val);
        }
    }  
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建一个测试项目(RefTest)

  3. 在RefTest / app下创建了文件夹“ libs”
  4. 将Ref.aar添加到库中
  5. File-> New-> New Module-> Import .JAR / .AAR包。
  6. 选择Ref.jar作为filename-> Finish(成功显示)。
  7. 修改后的build.gradle

    // build.gradle (Module: app)  
    
    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 27  
        buildToolsVersion "27.0.3"
        defaultConfig {
            applicationId "com.ramrod.RefTest"
            minSdkVersion 11
            targetSdkVersion 15
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            } …
    Run Code Online (Sandbox Code Playgroud)

java android build.gradle android-gradle-plugin aar

4
推荐指数
2
解决办法
6199
查看次数

类不包括在aar中

我正在使用Android Studio 1.0.1.

我设法在项目中配置Android库模块,因此它内置于AAR中.

我的问题是AAR档案里面没有我的班级.当我检查时,MyProject/MyModule/build/intermediates/classes/debug/my/package/mymodule我可以看到我的课程编译:MyClass.class

但是当我进入AAR(或解压缩它)时,同一个目录(我的意思是my/package/mymoduleclasses.jarAAR文件里面)只包含一个文件:BuildConfig.class

为什么我的班级不包含在AAR中?

java android gradle android-studio aar

3
推荐指数
1
解决办法
2696
查看次数

成功构建后复制发布aar文件

使用gradle构建aar文件时,如何将创建的版本复制到其他目录?(我不想仅仅为了复制发布文件而更改默认输出目录)

gradle build.gradle android-gradle-plugin aar

3
推荐指数
1
解决办法
3361
查看次数

任务extractReleaseAnnotations> java.lang.NullPointerException的Gradle Execution失败

我正在尝试设置一个依赖于其他两个库模块的Android库模块.我们使用android.support.annotation框架在一些方法上添加注释.当我尝试构建aar时,这就是我得到的:

:hce_entry:extractReleaseAnnotations FAILED
Error:Execution failed for task ':hce_entry:extractReleaseAnnotations'.
> java.lang.NullPointerException (no error message)
Run Code Online (Sandbox Code Playgroud)

我尝试使用--stacktrace选项获取更多信息来执行gradle构建,这是输出:

...
:hce_entry:extractReleaseAnnotations FAILED

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':hce_entry:extractReleaseAnnotations'.
java.lang.NullPointerException (no error message)

Try:
Run with --info or --debug option to get more log output.

Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':hce_entry:extractReleaseAnnotations'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:62)
        at …
Run Code Online (Sandbox Code Playgroud)

android gradle aar

3
推荐指数
1
解决办法
1407
查看次数

Proguard与AAR库问题

我有一个带有一个类的android库,我想把它变成一个.aar库.当我设置minifyEnabled为true时,另一个android项目不能使用该库(如果minifyEnabled设置为false则没问题).我想问一下使用AAR库的proguard的正确配置是什么

HelloWorld.java

package com.example.hello;

import android.util.Log;

public class HelloWorld {
    public static void Hello(){
        Log.v("HelloWorld","Hello World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

build.grandle

apply plugin: 'com.android.library'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0'
}
Run Code Online (Sandbox Code Playgroud)

proguard-rules.pro

-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { …
Run Code Online (Sandbox Code Playgroud)

android aar android-proguard

3
推荐指数
1
解决办法
5439
查看次数