相关疑难解决方法(0)

如何在没有公开披露源代码的情况下使用gradle创建Android库Jar?

我想从Android库项目中创建一个Jar.它设置如下:

ProjectName
    \- lib
    |   \- lib
    |       \- armeabi
    |           \- libNativeFirst.so
    |           \- libNativeSecond.so
    \- src
        \- main
            \- java
                \- com.package.sdk
                    \- PackageSDK.java
Run Code Online (Sandbox Code Playgroud)

我希望所有这些都打包在一个Jar中,但不会泄露存在的源代码PackageSDK.java.

我这样设置我的build.gradle文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android-library'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }

    sourceSets {
        main {
            java {
                srcDir 'src/main/java'
            }
            resources {
                srcDir 'src/../lib'
            }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

android jar gradle android-studio android-gradle-plugin

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

为Android项目创建自己的jar库时出错

目前我正在研究如何在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)

java android jar android-studio

16
推荐指数
1
解决办法
3894
查看次数