相关疑难解决方法(0)

Android studio将外部项目添加到build.gradle

我有一个示例项目,具有以下设置:

/root
  + Pure Java Lib
  + Android Test Lib
  + Android Test Project
Run Code Online (Sandbox Code Playgroud)

" 测试项目 "依赖于" 测试库 ",最后一个依赖于" 纯Java库 " 编译项目并启动此设置工作正常.

我现在正在考虑导入我之前的Eclipse工作区并使用Android studio,问题是项目设置不同,我想保持这种方式.

例如,如果要使用前面的示例:

/root
  + Android Test Lib
  + Android Test Project

/Some Other folder (another repository for example)
  + Pure Java Lib
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多配置,但是我找不到引用父文件夹范围之外的项目的方法(示例中的" root ").

在许多平台/模块中,你可以使用'..'在文件夹中向上移动,但这对我不起作用,也许我用错了.

有谁知道Gradle如何实现这一目标?

UPDATE

我会尝试更通用:

/C:/

  /Project A
    + Module 1 - Pure Java
    + Module 2 - Android Test Lib
    + Module 3 - Android Test Project

  /Project B
    + Module 1 …
Run Code Online (Sandbox Code Playgroud)

android gradle android-library android-studio

137
推荐指数
4
解决办法
9万
查看次数

Android studio:新项目与新模块

Android Studio使用的概念modules,而Eclipse使用的其他IDE projects.但是,AS File菜单可以选择创建一个New Module以及一个new Project.

这两者有什么区别?

建议使用哪一个?

android android-studio

136
推荐指数
4
解决办法
7万
查看次数

使用Android Studio的Android库项目

这个问题可能已在某处得到解答,但找不到合适的问题.

我想知道如何在Android Studio中创建一个通用的实用程序库项目.我想在其中编写一些常用类和一些常用方法,以便在Android应用程序项目中使用.可能就像Windows世界中的.dll一样 - 一组可以在多个消费者之间共享的常用方法.

提前致谢.

android android-library android-studio

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

在多库项目中处理Android Studio proguard

我有一个使用外部引用库的应用程序(也就是说,库的目录与应用程序处于同一级别 - 它不会复制到应用程序的文件夹中).该库由应用程序引用,库和应用程序都包含proguard文件.在构建应用程序之前,一切正常.当我构建应用程序时,找不到引用库中定义的类的所有内容 - 我在所有库类导入中找到'找不到符号类...)错误.正如我发现的那样,这是因为在重建应用程序时,proguard会混淆所有类和变量,因此应用程序无法引用它们.我已将以下内容添加到build.gradle文件中,

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
    }
    debug {
        minifyEnabled false
    }
}
Run Code Online (Sandbox Code Playgroud)

但似乎在构建应用程序时,不考虑上述内容(或者在发布模式下完成构建).如果我将以上内容更改为以下内容(即,在发布模式下禁用proguard),

buildTypes {
    release {
        **minifyEnabled false**
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
    }
    debug {
        minifyEnabled false
    }
}
Run Code Online (Sandbox Code Playgroud)

申请编译好.

这个问题有方法解决吗?我是否只能在创建签名应用程序时启用proguard?

这是库proguard文件:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-optimizations !method/marking/static

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends …
Run Code Online (Sandbox Code Playgroud)

android proguard gradle

29
推荐指数
1
解决办法
1万
查看次数

从Android Studio中的外部项目链接模块

我正在将我的所有项目从Eclipse迁移到Android Studio(1.0.2,只是昨天下载)但是有外部模块的问题.

在Eclipse中,我有这样的工作空间

在此输入图像描述

所有活动,片段,模型和类都在"核心"项目中.Core项目需要一些库来运作(例如Google Play服务,Facebook或Twitter),而App 1,App 2,App 3等只是标签应用程序.这些应用程序不包含除图标,配置文件,加载图像等外的任何内容.

我设法将"Core"应用程序及其所有依赖项导入Android Studio作为新项目.当我构建核心时,我得到0个错误和0个警告

在此输入图像描述

然后,我创建新的项目调用"测试"并通过从该问题中选择的答案链接"核心"项目

如何跨多个项目共享单个库源

测试项目的setting.gradle

include ':Test'
include '..:..:AppyCore:Core'
Run Code Online (Sandbox Code Playgroud)

测试项目的build.gradle

dependencies {
    compile 'com.android.support:support-v4:+'
    compile project('..:..:AppyCore:Core')
}
Run Code Online (Sandbox Code Playgroud)

但是,当我重建项目时,我收到了这个错误

Error:(41, 0) Project with path ':SlidingMenu' could not be found in project '..:..:AppyCore:Core'
Run Code Online (Sandbox Code Playgroud)

当我双击错误消息时,IDE会显示Core项目的build.gradle并突出显示文件的依赖项部分,如下所示

在此输入图像描述

似乎当我尝试构建"测试"项目时,它无法找到"核心"项目的所有依赖项.你知道怎么解决这个问题吗?

注意

  • 我相信"核心"项目设置已经是正确的,因为我确实创建了"测试2"应用程序并将"核心"项目导入同一个根目录,同一个项目.它没有任何问题.但这不是一个选项,因为我实际上有大约20多个白标应用程序.如果每个应用程序都拥有自己的"核心",那么逐个更新将非常困难.
  • 我认为我包含的目录是正确的,否则,我会得到这个错误

    "错误:找不到名称'default'的配置."

(我试图故意放错目录并得到同样的错误)

android android-studio android-gradle-plugin

19
推荐指数
1
解决办法
2059
查看次数

使用Android Studio创建独立的android库项目(0.8.14)

我看到有一个选项可以在项目中创建模块/ android库项目,但是没有看到任何方法来创建可以在不同项目之间共享的独立库项目/模块.它曾经在Eclipse中非常简单.当我尝试在不同项目中重用现有模块时,AndroidStudio只是在新项目中创建该模块的副本.多数民众赞成我不想要的,我想重用我现有的代码.这个链接似乎有我正在寻找的答案,但不适用于Android Studio的最新版本.

android android-library android-studio

7
推荐指数
1
解决办法
753
查看次数

Android工作室外部库项目

我正在从Eclipse迁移到android studio,这是我在eclipse中的设置:我有几个Android应用程序项目,这取决于一个工作区内的几个库项目(一些共享).在Android工作室中,我首先开始为每个应用程序创建一个项目,但很快意识到我必须将库项目作为每个项目中使用它们的模块.这意味着复制库项目并将它们包含在每个应用程序中,这是高度冗余的,并且需要维护库的多个副本.

所以我切换到将所有应用程序和库作为同一项目中的模块.这适用于构建,但会产生其他问题,例如版本控制问题,因为每个模块都位于单独的版本控制存储库中.

这种设置最简洁的方法是什么?真正的问题是,我可以在AS中拥有共享相同外部库项目的单独项目吗?

eclipse android project android-studio

5
推荐指数
1
解决办法
2103
查看次数

我们如何引用位于主 Android 项目目录之外的自定义 Android 和 Java 库?

引用库的传统设置是 Android Studio将库导入到我们主项目的根目录中。这并不是我们真正想要的,因为库的基本好处是它可以在许多项目之间共享。如果我们更新导入库中的代码,这不会反映在之前导入到另一个项目的库的代码中。

相反,我们的目标是创建一个 Main Android 项目,该项目可以引用存在于 Android 项目目录之外的自定义(您创建的)Android 和 Java 库模块,并且能够从 Main 内部编辑所有三个模块的代码安卓项目。也就是说,我们希望最终得到:

  • 属于我们的主 Android 项目的根模块(“app”);
  • Android 库模块,存在于 Android 项目目录之外,但被我们的主 Android 项目引用。
  • Java 库模块,存在于 Android 项目目录之外,但被我们的主 Android 项目引用。

...例如,我们有一个像这样的目录结构...

..\LibraryRefDemo\MyMainProject
..\LibraryRefDemo\Libraries\MyAndroidLibrary
..\LibraryRefDemo\Libraries\MyJavaLibrary
Run Code Online (Sandbox Code Playgroud)

换句话说,标题问题是“我们如何做到这一点?”。

现有类似的 stackoverflow 问题,例如......

但我发现这些问题和答案都只能部分解决我在这里提出的问题。

我将提供我自己的问题的答案,我相信,它列举了所有技巧和陷阱,并提供了一步一步的过程。

我将使用 Android Studio 3.0.1 ...

android android-studio

4
推荐指数
1
解决办法
2301
查看次数