2014-07-04 61 views
2

我有一个我不想作为AAR文件共享的库项目。Android Build:无法识别AAR包内的JAR文件的类

这个库项目包含几个JAR文件,其中一些是我制作的类,用于库项目。例如,我在lib项目中有一个类,它继承自JAR文件中的类。

我能够创建AAR文件,现在我正在测试Android Studio中制作的示例应用程序中的AAR文件。

我增加了AAR文件修改应用程序模块的像这样的build.gradle文件:

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 
dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile(name: 'mightylibrary', ext:'aar') 
    compile 'com.android.support:appcompat-v7:20.+' 
} 

然后,当我尝试使用方法父类的,我没能看到他们,只在子类中实现的方法。

访问AAR文件中打包的JAR中的类是否存在已知的限制?

任何解决方案?

感谢

+1

如果你解压aar(这是拉链),你看到你的类从jar吗? –

+1

是的,在AAR文件中有一个classes.jar。还有oter文件夹“assets”,“libs”等。在“libs”文件夹中,我可以看到我的图书馆项目需要的jar。 如果我解压classes.jar文件,我可以看到库项目中的类。 – fr4gus

回答

3

这么看来我错过了添加此

repositories { 
    jcenter() 
    mavenLocal() // Missed this 
} 

在项目(而不是模块)的build.gradle文件,以便它在本地缓存回购searchees。有趣的是,为什么它检测到“classes.jar”中的类,而不是在我的AAR文件的“libs”文件夹内的其他jar中。有趣的...

+0

感谢分享! –