小编Ari*_*ann的帖子

Android:具有相同软件包的2个Aar库

编辑:在下面的链接中发布了基于此讨论的后续问题。

Android:如何在同一应用程序使用的多个库中管理公共代码库

我有两个android aar库项目:使用ClassA的LibA和使用ClassB的LibB。这两个库具有相同的基本软件包。这两个库都使用名为BaseClass的相同类,当前分别位于程序包名称“ common”中的每个库中。BaseClass包含一个名为baseMethod的方法。

这将使用具有相同名称和不同实现的类创建两个库。

这是类的样子:

A类:

package mybasepackage.a;

import mybasepackage.common.BaseClass;

public class ClassA {

    BaseClass baseClass;

    public ClassA() {
        this.baseClass= new BaseClass();
    }

    public String myPublicMethod(){
        return this.baseClass.baseMethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

B类:

package mybasepackage.b;

import mybasepackage.common.BaseClass;

public class ClassB {

    BaseClass baseClass;

    public ClassB() {
        this.baseClass = new BaseClass();
    }

    public String myPublicMethod(){
        return this.baseClass.baseMethod();
    }
}

Run Code Online (Sandbox Code Playgroud)

LibA中的BaseClass:

package mybasepackage.common;

 public class BaseClass{

   public String baseMethod() {
        return "Called from ClassA";
    }
}
Run Code Online (Sandbox Code Playgroud)

LibB中的BaseClass:

package mybasepackage.common;

 public class …
Run Code Online (Sandbox Code Playgroud)

java dependencies android android-library

10
推荐指数
2
解决办法
258
查看次数

如何防止C++重新编译Android NDK中的所有文件?

你好,

我在一个包含大量C++文件的项目中使用带有NDK和JNI的Android Studio.当我在做一个C++改变文件 也不会在代码适用,除非我重建整个项目,并刷新整个C++文件,所以他们必须重新编译.编译过程每次小变化需要3分钟以上,每天20次,你已经失去了一个小时.

根据今天,我改变文件后,我去了

构建>>刷新链接的C++项目,

然后运行该项目,导致所有文件的完整,冗余编译.

我正在寻找编译器只刷新更改文件的方法,因此缩短了构建过程.

注意:此问题仅发生在Windows中,当我在Mac上运行Android Studio时,编译器仅重新编译相关文件.

这是我的CMakeLists.txt文件:

cmake_minimum_required(VERSION 3.4.1)

FILE(GLOB CPP_SRC
     "src/main/cpp/*.c"
     "src/main/cpp/*.h"
     "src/main/cpp/*.cpp"
     "src/main/cpp/*.hpp"
 )


add_library(MyLib

             SHARED
             ${CPP_SRC} )

find_library(
              log-lib
              log )

target_link_libraries(
                       MyLib

                       ${log-lib} )

target_link_libraries(MyLib
                      android
                      log
                      EGL
                      GLESv2)
Run Code Online (Sandbox Code Playgroud)

和我的gradle.build文件:

apply plugin: 'com.android.library'

android {
    signingConfigs {
        config {
            keyAlias '*****'
            keyPassword '*****'
            storeFile file(*****)
            storePassword '*****'
        }
    }
    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    defaultConfig {

    minSdkVersion 16
    targetSdkVersion 27
    versionCode 1

    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    externalNativeBuild {
        cmake {

            arguments …
Run Code Online (Sandbox Code Playgroud)

java-native-interface android android-ndk android-studio

8
推荐指数
1
解决办法
1343
查看次数