gpt4 book ai didi

java - 如何使用其他项目的共享库模块在 Android Studio 中运行应用程序?

转载 作者:行者123 更新时间:2023-12-01 11:19:33 47 4
gpt4 key购买 nike

我在另一个项目中使用了自己编写的库模块,就像

中建议的那样

https://code.google.com/p/android/issues/detail?id=105570

Android Studio 0.8.1 Creating Modules without copying files?

我将这些行添加到了 settings.gradle 中,并通过“项目结构”对话框添加了包含的库作为项目的依赖项。我使用Android Studio 1.2.2。

IDE 中的一切看起来都很好(导入正常,库代码可以浏览和编辑,两个模块都可以“制作”而不会出现错误),但我似乎无法在手机/模拟器上启动该项目。

我从应用程序中使用的库中获得第一个类的“classNotFoundException”。

我从 Eclipse 中逐类复制粘贴了整个项目,它可以毫无问题地运行。

我需要做什么才能将库的编译类放入我手机上的应用程序中?

设置.gradle

include ':app'
include ':Sudoku'
project(':Sudoku').projectDir=new File('/../Libs/sudoku')

build.gradle(应用程序)

apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
applicationId "com.frozenmilkmeteoroids.sudokuapp"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.0'
compile project(':Sudoku')
}

build.gradle(库)

apply plugin: 'com.android.library'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

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

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
}

最佳答案

我还使用 Android Studio 1.2.2,以下是如何创建独立库项目并从主项目中引用它的分步说明:

  1. 像创建普通 Android 项目一样创建 Android 项目库。将其命名为libProjectName

  2. libProjectNameapp模块重命名为libModuleName

  3. libModuleName的build.gradle中进行更改: 应用插件:'com.android.application'应用插件:'com.android.library' 并从 defaultConfig 中删除 applicationId 部分

  4. 转到主项目,即引用libProjectName的项目

  5. 编辑settings.gradle,添加:

include ':libProjectName:libModuleName'

project(':libProjectName:libModuleName').projectDir=new File('relative/path/libProjectDir/libModuleDir')

  • 编辑app模块中的build.gradle,添加:
  • compile project(':libProjectDir:libModuleName')

    <小时/>

    现在假设数独中的模块模块目录名称为moduleSudoku并应用上述步骤,解决方案是:

    设置.gradle

    include ':app'
    include ':Sudoku:moduleSudoku'
    project(':Sudoku:moduleSudoku').projectDir=new File('/../Libs/sudoku/moduleSudoku')

    build.gradle(应用程序)

    apply plugin: 'com.android.application'

    android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
    applicationId "com.frozenmilkmeteoroids.sudokuapp"
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    }
    buildTypes {
    release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    }
    }

    dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile project(':Sudoku:moduleSudoku')
    }

    build.gradle(库)

    apply plugin: 'com.android.library'

    android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

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

    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    }

    关于java - 如何使用其他项目的共享库模块在 Android Studio 中运行应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31413361/

    47 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com