Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将android项目作为库导入,而不是作为apk编译(android studio 1.0)_Java_Android_Gradle_Android Studio_Build.gradle - Fatal编程技术网

Java 如何将android项目作为库导入,而不是作为apk编译(android studio 1.0)

Java 如何将android项目作为库导入,而不是作为apk编译(android studio 1.0),java,android,gradle,android-studio,build.gradle,Java,Android,Gradle,Android Studio,Build.gradle,我试图导入一个项目(projLib)作为另一个项目(projAPK)的依赖项 projAPK gradle有以下几点: dependencies { compile project(':libs:NewsAPI') compile project(':projLib') } 但当我同步渐变时,会出现以下错误: 错误:依赖项Android_2015:projLib:projAPK项目上的未指定项解析为不支持作为编译依赖项的APK存档。文件:/Users/myname/Docume

我试图导入一个项目(projLib)作为另一个项目(projAPK)的依赖项

projAPK gradle有以下几点:

dependencies {
    compile project(':libs:NewsAPI')
    compile project(':projLib')
}
但当我同步渐变时,会出现以下错误:

错误:依赖项Android_2015:projLib:projAPK项目上的未指定项解析为不支持作为编译依赖项的APK存档。文件:/Users/myname/Documents/Development/Android_2015/libs/projAPK/build/outputs/apk/projLib-release-unsigned.apk

所以我想有两种解决方法:

  • 不知何故,gradle认为projLib是一个不应该编译为apk的库
  • 以某种方式使gradle不显式编译projLib
  • 问题是,我找不到该怎么做。
    如果你们能提供帮助,那就太棒了:)

    projLib的build.gradle文件中,您会看到这样一条语句:

    apply plugin: 'com.android.application'
    
    它告诉Gradle将其构建为一个应用程序,生成一个APK。如果将其更改为:

    apply plugin: 'com.android.library'
    
    它将构建为一个库,生成一个AAR,它应该可以工作

    如果您还需要projLib来生成一个单独的APK,那么您必须进行一些重构,将您需要的公共代码提取到第三个库模块中,并使两个APK都依赖于它


    不允许库设置
    应用程序ID
    ,因此如果您看到这样的错误消息,请将其从库的构建脚本中删除。

    在模块渐变文件中-

    应用插件:“com.android.application”替换为
    应用插件:“com.android.library”

    然后删除应用程序ID“xxx.xxx.xxxx”


    清理并构建

    只需将这些行添加到库
    gradle
    文件中,然后删除其他部分

    apply plugin: 'com.android.library'
    
    android {
       compileSdkVersion 23
       buildToolsVersion '23.0.2'
    }
    
    dependencies {
       compile fileTree(dir: 'libs', include: ['*.jar'])
       compile 'com.squareup.picasso:picasso:2.4.0'
       compile 'com.google.code.gson:gson:2.2.4'
       compile 'com.android.support:appcompat-v7:23.1.1'
       compile 'com.android.support:gridlayout-v7:23.1.1'
      ,...
    }
    

    谢谢你,先生,这起作用了。有没有关于这些插件的阅读/文档可以推荐给我?我尝试了一下,发现了一个新错误:
    error:Library projects无法设置applicationId。applicationId在默认配置中设置为'com.bulletnoid.android.widget.StaggedGridViewDemo'。
    StaggedGridViewDemo是我试图作为模块导入的库中的一个包。我刚刚从defaultConfig{}中删除了应用程序Id行,它工作了。此外,您还需要在。。。要覆盖主iconall,请在模块gradle文件中执行