我一直在阅读一些关于Gradle作为Android应用程序的标准构建系统的新采用的文章.好吧,来自标准的Java开发,我通常依赖于jar文件来构建我的项目.然而似乎安卓也有AAR包,这是相当于DLL在Windows操作系统文件,提到这里:
首先,您必须意识到Android平台不允许应用程序级别的"共享库".在"传统"编程语言平台,C,C++,Java中,您可以命名它,我们有这种共享运行时库的机制.(例如,Windows上的DLL,Unix上的DSO,JVM上的Jar等).但是,在Android上,除非您是Google或手机制造商,否则您无法做到这一点(请参阅下面的脚注1).作为应用程序开发人员,这可能是一个基本限制.在构建时和运行时"共享"或"重用"代码是软件工程实践中非常重要的一部分.由于上述限制,这在Android上相当困难(并非不可能,更难).
但是,我对这个概念有些怀疑.我的意思是,开发人员何时应该对其应用程序中包含aar依赖项感兴趣?这种依赖关系是否收紧到SDK最低版本?
例如,在一个项目中,我访问一个COM端口,我使用NDK预编译 .so库.如果我想分享这个实用程序,我是否必须创建一个aar?
我已经构建了我的android库包(aar),并在"..\app\build\outputs\aar"文件夹中创建了build的结果.这个文件夹中的文件名为"app-debug.aar",所以我猜它是在调试模式下构建的,所以我想知道如何生成构建的版本,即"app-release.aar".我怎样才能做到这一点?此外,是否可以使用另一个自定义名称生成构建,例如,"myCustomAppName-release.aar"而不是"app-release.aar".
目前我正在研究如何在Android Studio中创建jar库的基础知识.
我按照如何从Android Studio项目中创建一个.jar以及如何从android studio教程创建一个jar文件.并完成了第一个教程中描述的每个步骤.
但是,当我构建并运行此库项目时,它向我显示以下错误
错误:任务':app:preDexDebug'的执行失败.com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files\Java\jdk1.8.0_60\bin\java.exe''以非完成零退出值1
我在SO中调查了这个问题,但这些问题根本没有帮助我.这对我来说不是内存问题,因为所有其他应用程序都运行得很好.虽然我的项目没有完美编译,但我从我的库文件夹中获取了库jar文件,当我在其他项目中导入该jar作为库时,我得到了相同的错误消息.
所以我想我在这里错过了一些关键点.如果有人遇到类似的问题或者可以帮助我,请给我一些建议.
如果您希望我发布任何代码,请告诉我,我会这样做,谢谢.
我只是添加一个java库模块并在Multiplication
那里添加一个非常简单的类(检查下面的代码).然后在我的项目中将该库模块添加为库.
图书馆代码
public class Multiplication {
public double multiply(int num1, int num2){
return num1*num2;
}
}
Run Code Online (Sandbox Code Playgroud)
活动代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edt1 = (EditText)findViewById(R.id.et1);
edt2 = (EditText)findViewById(R.id.et2);
btn = (Button)findViewById(R.id.btn);
tv = (TextView)findViewById(R.id.tvRes);
multiplication = new Multiplication();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double res = multiplication.multiply(Integer.parseInt(edt1.getText().toString()),Integer.parseInt(edt2.getText().toString()));
tv.setText(Double.toString(res));
}
});
Run Code Online (Sandbox Code Playgroud)
的build.gradle
apply …
Run Code Online (Sandbox Code Playgroud) 我有一个相当最新版本的android studio,我在一个项目下创建了一个模块,基本上应该是一个库,当我构建它时,它会创建一个".aar"文件,我想要的是.jar文件,因为这个库也应该与eclipse一起使用.
该库还包含活动,有没有什么方法可以创建一个.jar文件,我可以在Eclipse和Android Studio上使用它?
我已经创建了这个模块并尝试构建,因此它生成了.aar文件,而不是.jar文件.
当前,每当尝试在AWS Lambda上测试Lambda函数时,我都会收到ClassNotFoundException。异常显示在这里:
我已经在线搜索过,包括此处的以下链接:AWS Lambda:class java.lang.ClassNotFoundException,无济于事。
我正在Android Studio中工作,并创建了一个JAR文件(使用此链接:如何从Android Studio项目中制作一个.jar),用于将类上传到AWS Lambda控制台。
下面是我的项目的结构:
当我将JAR文件上传到AWS Lambda控制台时,“配置”选项卡如下所示:[
以前有人告诉我,这可能是因为我的JAR文件不是带有MANIFEST.MF文件的可执行JAR文件,但是我绝对有。
还有其他原因导致此错误持续出现以及如何解决?
我在Android Studio中有一个库项目.我想为这个库生成一个.jar文件.我需要jar file contain/include all the dependencies
这个图书馆项目了.
问题是我找不到生成jar文件的方法.有什么办法可以为我的项目生成一个jar文件吗?
最好的祝福