标签: android-build

如何构建自己的Android SDK

我在我自己的Android设备上工作,它有许多新的API(但@hide装饰).我的目标是提供一个android sdk来开发它并使用这些新的API.

所以我的问题是:如何用这些新的API构建我自己的android sdk?

如果@hide装饰是一个问题,我可以删除它们(我不必尊重CDD)

android android-build android-sdk-2.3

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

针对不同环境的不同Android构建

我希望能够构建和安装我的应用程序的多个版本(同时),针对不同的环境,如开发,暂存和生产.

包中的名称AndroidManifest.xml似乎是这里的主要障碍,因为它是唯一标识应用程序的内容.我认为这将是可以简单地切换com.mydomain.prod,com.mydomain.staging并且com.mydomain.dev或某种类似的规定,但到目前为止我没有运气来了与此方法适用的封装结构.

我可以采用什么策略以尽可能少的痛苦来做到这一点?

android android-manifest android-build

8
推荐指数
2
解决办法
2407
查看次数

从构建中删除AOSP应用程序

首先,我正在尝试使用Android源代码构建Android平台,而不使用LiveWallpapers,Calendar,Contacts,Calculator,Phone,Settings等股票应用程序.

为了做到这一点,我正在修改/ build/target/product /中的 make文件,特别是包含需要构建的所有应用程序和库的变量PRODUCT_PACKAGES.

例如,我删除了以下行:

DeskClock \
Bluetooth \
Calculator \
Calendar \
Run Code Online (Sandbox Code Playgroud)

来自PRODUCT_PACKAGES :=文件generic_no_telephony.mk.

但是,当我在闪存后运行我的平板电脑时,我仍然会找到电子邮件,声音和语音记录器等应用程序.我已经在重建之前清理过了.我是否需要删除其他make文件中的更多条目?

在这里,您可以看到我在build/target/product /中对make文件所做的所有修改:

diff --git a/target/product/core.mk b/target/product/core.mk
index 1d62eb8..5474f6a 100644
--- a/target/product/core.mk
+++ b/target/product/core.mk
@@ -25,23 +25,13 @@ PRODUCT_PROPERTY_OVERRIDES := \
 PRODUCT_PACKAGES += \
     ApplicationsProvider \
     BackupRestoreConfirmation \
-    BasicDreams \
     Browser \
-    Contacts \
-    ContactsProvider \
     DefaultContainerService \
-    DownloadProvider \
-    DownloadProviderUi \
-    HTMLViewer \
     Home \
     KeyChain \
- …
Run Code Online (Sandbox Code Playgroud)

android android-build android-source

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

Android SDK Manager无法更新SDK构建工具修订版18.1.1

下面是命令行结果(GUI非常相似):

C:\Program Files (x86)\Android\android-sdk\tools>android update sdk -u -a -t 3

.... licensing stuff

Installing Archives:
  Preparing to install archives
  Downloading Android SDK Build-tools, revision 18.1.1
  URL not found: C:\Program Files (x86)\Android\android-sdk\temp\build-tools_r18.1.1-windows.zip (Access is denied)
  Done. Nothing was installed.
Run Code Online (Sandbox Code Playgroud)

我没有在网上找到任何有用的东西.可能是什么问题呢?

android android-build android-sdk-tools

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

什么是"Android SDK工具","Android SDK平台工具"和"Android SDK构建工具"?

什么是"Android SDK工具","Android SDK平台工具"和"Android SDK构建工具"?他们之间有什么区别?

在此输入图像描述

更新其他软件包后,该软件包的旧版本将被删除,但正如您所看到的,我同时拥有4个版本的"Android SDK构建工具".你知道为什么吗?

android android-build android-sdk-tools

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

在OSX上的Android Studio旧版和新版上,Gradle构建失败

当我在我的PC上工作时,我有一个成功的构建项目,并且我已经提交并将其推送到我的Git仓库,然后再迁移到OSX.

现在,我在OSX上安装了Android studio最新版本并试图构建同一个项目,它在构建资源时出错.在Manifest中构建资源时,会出现多个错误

找不到与给定名称匹配的资源

对于drawables和字符串.

通过网络浏览,我想可能更新版本的gradle有一些问题.因此,我将AS的安装降级为AS 1.0并使用旧的gradle 2.2.不幸的是,这个版本的gradle也会出现同样的错误.

build.gradle看起来如下:

apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "xxx"
    minSdkVersion 16
    targetSdkVersion 21
    versionCode 4
    versionName "1.3"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
sourceSets {

    main {
        res.srcDirs = [
                "/src/main/res"
        ]
    }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/thermodosdk-1.0.18.jar')
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.android.support:support-v4:21.0.3'
Run Code Online (Sandbox Code Playgroud)

build.gradle在顶层有以下类路径:

dependencies {
    classpath 'com.android.tools.build:gradle:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

Information:Gradle …
Run Code Online (Sandbox Code Playgroud)

android gradle android-build android-resources android-studio

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

multiDexKeepFile 不起作用

我们在构建 multidex 应用程序时遇到问题。我们java.lang.NoClassDefFoundError在应用程序启动期间不断收到不同的错误。

我们注意到它们很可能与 multidex 问题有关。由于启动应用程序所需的类必须存在于主 DEX 文件中,并且它们不包含在classes.dex. 我们执行了https://developer.android.com/studio/build/multidex.html#keep 中描述的步骤, 但我们在 中指定的类multidex-config.txt,甚至在 中指定的类multidex-config.pro没有放置在主 dex 文件 ( classes.dex) 中。

你们有使用multiDexKeepFile或 multiDexKeepProguard 的经验吗?它真的有效吗?有什么技巧可以使它工作并将文件放在classes.dex?

android android-build android-multidex

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

无法访问ActivityCompatApi23类

我的gradle文件存在运行时问题.我将此compile 'com.google.android:flexbox:0.3.1'作为编译时依赖项添加到我的Gradle文件中.我遇到了一个错误,并将其添加到我的项目级Gradle文件中.

maven {
            url "https://maven.google.com"
        }
Run Code Online (Sandbox Code Playgroud)

添加上述内容后,最终看起来很喜欢这个

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序级别Gradle文件中添加上述内容后,当我尝试运行我的应用程序时,我现在遇到了不同的错误.所以我按照SO的一些答案做了以下几点.

  1. 试过清洁和重建.
  2. 导航到路径projectName\.idea\libraries并删除包含除当前版本25.3.1 3 之外的支持库版本的文件.为了解决错误,我从我的应用程序级Gradle文件中进一步删除了该行,

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',{exclude group:'com.android.support',module:'support-annotations'})

现在,最终的Gradle文件看起来像这样,带有错误,

错误:

Error:(28, 8) error: cannot access ActivityCompatApi23
class file for android.support.v4.app.ActivityCompatApi23 not found
Run Code Online (Sandbox Code Playgroud)

我的Gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "com.example.test"
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false …
Run Code Online (Sandbox Code Playgroud)

android gradle android-build android-gradle-plugin android-flexboxlayout

8
推荐指数
2
解决办法
9681
查看次数

isMinifyEnabled()已弃用.有什么选择?

我使用下面的代码显然根据产品风格自动生成pro guard映射文件.

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            applicationVariants.all { variant ->
                if (variant.getBuildType().isMinifyEnabled()) {
                    variant.assemble.doLast {
                        copy {
                            from variant.mappingFile
                            into "${rootDir}/proguardTools"
                            rename { String fileName ->
                                "mapping-${variant.name}.txt"
                            }
                        }
                    }
                }
            }

        }
    }
Run Code Online (Sandbox Code Playgroud)

将android studio升级到3.0之后,它会显示一条警告说isMinifyEnabled()已弃用,我无法找到任何解决方案或替代方案isMinifyEnabled().有任何帮助提前感谢吗?

在此输入图像描述

android gradle android-build android-gradle-plugin android-gradle-3.0

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

什么是Android SDK构建工具,平台工具和工具?

我知道这是一个非常基本的问题.但我对原生的android开发很新,我无法绕过什么是什么.

我使用Android Standalone SDK而不使用Android Studio,因此请相应指导.

假设我想为API级别19构建我的应用程序.我需要安装什么级别的平台工具和构建工具.

这就是我目前所拥有的

在此输入图像描述

在此输入图像描述

因为我想为我安装的API 19构建.我需要版本19 Android SDK build tools还是更高版本?

请告诉我,每个术语在外行人的条件中意味着什么.

-谢谢

android android-build android-sdk-2.3 android-sdk-tools

7
推荐指数
2
解决办法
5105
查看次数