如何Android Studio中与其他项目共享库模块上运行的应用程序? [英] How to run app in Android Studio with shared library-module from other project?

查看:161
本文介绍了如何Android Studio中与其他项目共享库模块上运行的应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用另外一个项目中的自写库模块就像是在建议

HTTPS://$c$c.google。 COM / p /安卓/问题/细节?ID = 105570

<一个href=\"http://stackoverflow.com/questions/24658422/android-studio-0-8-1-creating-modules-without-copying-files\">Android工作室0.8.1不复制文件创建模块?

我增加了线条settings.gradle并通过项目结构 - 对话还增加了包括图书馆作为一个依赖于该项目。我使用Android 1.2.2工作室

在IDE中一切正常(进口工作,库 - code可以浏览和编辑,这两个模块可以被maked没有错误),但我似乎无法启动我的手机上的项目/仿真器。

我得到从库中第一个类,在应用程序中使用了ClassNotFoundException异常。

我复制粘贴整个项目类通过从Eclipse中类哪里会运行没有问题。

我有什么做的就是编译的类图书馆为我的应用程序到我的手机?

settings.gradle

 包括':应用程序
包括:数独
项目(:数独')PROJECTDIR =新的文件(/../利布斯/数独)

的build.gradle (应用程序)

 应用插件:'com.android.application安卓{
    compileSdkVersion 22
    buildToolsVersion22.0.1    defaultConfig {
        的applicationIDcom.frozenmilkmeteoroids.sudokuapp
        15的minSdkVersion
        targetSdkVersion 22
        版本code 1
        的versionName1.0
    }
    buildTypes {
        发布 {
            minifyEnabled假
            proguardFiles getDefaultProguardFile('proguard的-android.txt'),'proguard-rules.pro
        }
    }
}依赖{
    编译文件树(包括:['的* .jar'],DIR:库)
    编译com.android.support:appcompat-v7:22.2.0
    编制项目(':数独)
}

的build.gradle (库)

 应用插件:'com.android.library安卓{
    compileSdkVersion 22
    buildToolsVersion22.0.1    defaultConfig {
        15的minSdkVersion
        targetSdkVersion 22
        版本code 1
        的versionName1.0
    }
    buildTypes {
        发布 {
            minifyEnabled假
            proguardFiles getDefaultProguardFile('proguard的-android.txt'),'proguard-rules.pro
        }
    }
}依赖{
    编译文件树(导演:'库',包括:['的* .jar'])
    编译com.android.support:appcompat-v7:22.2.0
}


解决方案

我也使用Android 1.2.2工作室,这里是一步如何创建独立的库项目,并从您的主项目引用它的步骤:


  1. 创建Android项目库,你会为一个正常的Andr​​oid项目。说它 libProjectName


  2. 改名 libProjectName 应用模块的 libModuleName


  3. libModuleName的的build.gradle 的变化:
        应用插件:'com.android.application应用插件:'com.android.library并删除< STRONG>的applicationID 从 defaultConfig 部分


  4. 进入主体工程即项目引用 libProjectName


  5. 编辑 settings.gradle ,地址:


  

包括':libProjectName:libModuleName


  
  

项目(':libProjectName:libModuleName')PROJECTDIR =新的文件(相对/路径/ libProjectDir / libModuleDir')


<醇开始=6>
  • 编辑的build.gradle 应用模块,添加:


  •   

    编制项目(':libProjectDir:libModuleName')



    现在假设的模块的和的模块目录的数独名为 moduleSudoku 并应用上面的步骤,解决的办法是:

    settings.gradle

     包括':应用程序
    包括:数独:moduleSudoku
    项目(':数独:moduleSudoku')PROJECTDIR =新的文件(/../利布斯/数独/ moduleSudoku')。

    的build.gradle(APP)

     应用插件:'com.android.application安卓{
        compileSdkVersion 22
        buildToolsVersion22.0.1    defaultConfig {
            的applicationIDcom.frozenmilkmeteoroids.sudokuapp
            15的minSdkVersion
            targetSdkVersion 22
            版本code 1
            的versionName1.0
        }
        buildTypes {
            发布 {
                minifyEnabled假
                proguardFiles getDefaultProguardFile('proguard的-android.txt'),'proguard-rules.pro
            }
        }
    }依赖{
        编译文件树(包括:['的* .jar'],DIR:库)
        编译com.android.support:appcompat-v7:22.2.0
        编制项目(':数独:moduleSudoku')
    }

    的build.gradle(库)

     应用插件:'com.android.library安卓{
        compileSdkVersion 22
        buildToolsVersion22.0.1    defaultConfig {
            15的minSdkVersion
            targetSdkVersion 22
            版本code 1
            的versionName1.0
        }
        buildTypes {
            发布 {
                minifyEnabled假
                proguardFiles getDefaultProguardFile('proguard的-android.txt'),'proguard-rules.pro
            }
        }
    }依赖{
        编译文件树(导演:'库',包括:['的* .jar'])
        编译com.android.support:appcompat-v7:22.2.0
    }

    I use a self-written library-module within another project like it was suggested in

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

    and

    Android Studio 0.8.1 Creating Modules without copying files?

    I added the lines to settings.gradle and furthermore added the included library via "Project Structure"-Dialog as a dependency to the project. I use Android Studio 1.2.2.

    Everything within the IDE looks fine (imports are working, library-code can be browsed and edited, both modules can be "maked" without errors), but I can't seem to launch the project on my phone / emulator.

    I get a "classNotFoundException" for the first class from the library that is used in the app.

    I copy-pasted the entire project class by class from Eclipse where it would run without problems.

    What do I have to do to get the compiled classes of the library into my app onto my phone?

    settings.gradle

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

    build.gradle (app)

    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 (library)

    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'
    }
    

    解决方案

    I also use Android Studio 1.2.2 and here is step by step of how to create the standalone library project and reference it from your main project:

    1. create the android project library as you would for a normal android project. Call it libProjectName

    2. rename the libProjectName's app module to libModuleName

    3. in the libModuleName's build.gradle change: apply plugin: 'com.android.application' to apply plugin: 'com.android.library' and remove applicationId from defaultConfig section

    4. Go to the main project i.e the project to reference libProjectName

    5. edit settings.gradle, add:

    include ':libProjectName:libModuleName'

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

    1. edit build.gradle in app Module, add:

    compile project(':libProjectDir:libModuleName')


    Now assuming that the module and module-directory name in Sudoku is moduleSudoku and applying the steps above, the solution is:

    settings.gradle

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

    build.gradle (app)

    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 (library)

    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中与其他项目共享库模块上运行的应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆