标签: android-build

使用ant使用库构建android应用程序

我有2个项目(源代码).项目A是未编译的库,项目B使用该库.我想用ant编译它.我正在使用android更新来设置.

android update lib-project --target 2 --path c:\ Android-Build\A.

android更新项目--target 2 --path c:\ Android-Build\B --library ..\A.

在项目B的libs文件夹中,我什么都没有.我正在使用的所有库都在库(A)上.使用eclipse一切正常.

我怎么能用ant编译呢.

ant debug throw错误.库(A)首先编译(生成bin和gen文件夹).

但是当来到项目B来获取编译时无法从库中找到导入.如何告诉ant在构建过程中将库包含到项目B中?TY.

[javac] C:\ Android-Build\B Activity.java:7:错误:找不到符号[javac] import com.aA;

*更新**


project.properties 对于项目B.

android.library.reference.1=..\\A
# Project target.
target=Google Inc.:Google APIs:13
Run Code Online (Sandbox Code Playgroud)

project.properties 对于项目A.

target=Google Inc.:Google APIs:13
Run Code Online (Sandbox Code Playgroud)

\\似乎是正确的,因为如果我将其更改为\ ant无法找到库

ant android android-build

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

尝试在ant build中将autoCompleteTextView适配器设置为null时出现编译错误

我正在尝试使用ant构建一个apk,并且编译失败并显示以下错误消息:

[javac]  type parameters of <T>void cannot be determined; no unique maximal instance exists for type variable T with upper bounds android.widget.ListAdapter,android.widget.Filterable
[javac]             currentAddressTextView.setAdapter(null);
Run Code Online (Sandbox Code Playgroud)

在eclipse中它编译得很好,当我删除那部分代码时,它也会在ant构建期间编译.

ant android android-build

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

构建android 4.3 master时出错

我需要构建android 4.3 master.按照http://source.android.com/source/building.html上的说明操作.它很好地从repo同步源代码.当我们尝试使用"make -j4"构建时,这种情况正在发生.

1 error
make: *** [out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes-full-debug.jar] Error 41
make: *** Waiting for unfinished jobs....
Run Code Online (Sandbox Code Playgroud)

这是完整的日志 -

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.3.2.1.000.000
TARGET_PRODUCT=aosp_panda
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a9
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-2.6.32-38-generic-x86_64-with-Ubuntu-10.04-lucid
HOST_BUILD_TYPE=release
BUILD_ID=OPENMASTER
OUT_DIR=out
============================================
No private recovery resources for TARGET_DEVICE panda
target Java: core (out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes)
host Executable: aidl (out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl)
host C++: aapt <= frameworks/base/tools/aapt/AaptAssets.cpp
host C++: aapt <= frameworks/base/tools/aapt/Command.cpp
host C++: aapt <= frameworks/base/tools/aapt/CrunchCache.cpp
host C++: aapt <= frameworks/base/tools/aapt/FileFinder.cpp
host C++: aapt <= frameworks/base/tools/aapt/Main.cpp
host C++: …
Run Code Online (Sandbox Code Playgroud)

android javac android-build ubuntu-10.04

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

选择哪一个作为项目构建目标?Google API或SDK平台

我一直在寻找,但找不到这两件事之间的区别.我已经阅读了其他一些问题,其中有人说当我们要整合Google Maps Api或使用其他Google API时,我们应该使用Google Apis作为构建目标.

问题是我在基于简单的Android 4.4而不是Google API(平台4.4)的项目上使用地图,并且地图在我的Galaxy s3上运行得很好.

他们怎么可能工作?

如果他们正在工作,那么Google API和SDK平台之间有什么区别?或者仅与模拟器有关?

android google-maps android-version android-build

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

动态生成多口味配置的包名

我有 Gradle Android 项目,将供多个客户使用。它还将有免费和付费版本。我意识到它可以通过使用flavorDimensions来实现。但问题是我想要一种根据所选口味生成包名称的方法。

flavorDimensions 'branding', 'version'
productFlavors {
    free {
        flavorDimension 'version'
    }
    paid{
        flavorDimension 'version'
    }
    customer1 {
        flavorDimension 'branding'
    }
    customer2 {
        flavorDimension 'branding'
    }
}

// pseudocode
def getGeneratePackageName() {
    if (customer1 && free) {
        return 'com.customer1.free'
    }
    if (customer2 && free) {
        return 'com.customer2.free'
    }
    if (customer1 && paid) {
        return 'com.customer1.paid'
    }
    if (customer2 && paid) {
        return 'com.customer2.paid'
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道什么时候需要调用这个方法以及需要设置什么变量?

android gradle android-build package-name

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

apksigner - 无效的密钥库格式

如https://developer.android.com/studio/publish/app-signing#signing-manually中所述,我尝试在 Windows 7 上的 git bash 中签署应用程序。

我用它生成一个密钥库, keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias 应该使用默认的密钥库类型,这应该没问题。

然后我运行zipalign zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk 给出“验证成功”(带有一个)

最后我运行 apksigner 这给了我错误:

"C:\....\apksigner.bat" sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
Keystore password for signer #1:
123456
Failed to load signer "signer #1"
java.io.IOException: Invalid keystore format
        at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658)
        at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56)
        at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
        at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70)
        at java.security.KeyStore.load(KeyStore.java:1445)
        at com.android.apksigner.ApkSignerTool$SignerParams.loadPrivateKeyAndCertsFromKeyStore(ApkSignerTool.java:613)
        at com.android.apksigner.ApkSignerTool$SignerParams.loadPrivateKeyAndCerts(ApkSignerTool.java:555)
        at com.android.apksigner.ApkSignerTool$SignerParams.access$200(ApkSignerTool.java:509)
        at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:215)
        at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:89)
Run Code Online (Sandbox Code Playgroud)

我还尝试了不同的存储类型,例如pkcs12 …

android android-build apksigner

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

在android studio中创建构建变体源集时出错

我是 Android Studio 构建变体的新手。我创建了一个新应用程序,在 gradle 中编辑了构建风格并成功同步了它。但是当我为其中一个构建变体(demoDebug)添加源集时,它显示错误。

模块级 build.gradle 文件:

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 28
        defaultConfig {
            applicationId "com.example.shaon.myappbuildtest"
            minSdkVersion 15
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }

            debug {
                applicationIdSuffix ".debug"
                debuggable true
            }
        }

        flavorDimensions "version"
        productFlavors {
            demo {
                dimension "version"
                applicationIdSuffix ".demo"
                versionNameSuffix "-demo"
            }
            full {
                dimension "version"
                applicationIdSuffix ".full"
                versionNameSuffix "-full"
            }
        }
        sourceSets { debug { java.srcDirs = ['src/debug/java', 'src/debug/java/'] …
Run Code Online (Sandbox Code Playgroud)

android android-build android-studio android-build-type android-build-flavors

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

Android Studio 4.0.1:构建失败:不推荐使用选项“android.databinding.enableV2”

我最近升级到 Android Studio 4.0.1 并且我的构建不断失败并显示以下消息:

不推荐使用选项“android.databinding.enableV2”。当前默认值为“真”。它已从当前版本的 Android Gradle 插件中删除。删除了数据绑定 v1。

我尝试添加:

android.enableExperimentalFeatureDatabinding = false
android.databinding.enableV2=false
Run Code Online (Sandbox Code Playgroud)

到 gradle.properties 和 gradle-wrapper.properties。但都没有解决问题。是否有必须从 build.gradle 添加或删除的内容?

android-build build.gradle android-databinding android-studio-4.0

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

Android自定义产品口味的工作流程

我有一个带有一堆产品口味的应用程序,它们基本上是单个应用程序的白色标签.然而,偶尔会有一些与主流有所不同,因为客户想要的东西略有不同.到目前为止,我们一直在编辑这些案例的代码,并使用意大利面条代码(许多ifs和elses)来确保其他应用程序不会中断.毋庸置疑,这不是一种可扩展(甚至是理智)的方法.

一种选择是在productFlavor源文件夹中编写活动类,即src/flavor1/java/AnActivity.java,src/flavor2/java/AnActivity.java等等.由于productFlavor代码不能覆盖src/main类,因此即使没有自定义,也需要为每个新的风格复制相同的类.我真的不太喜欢这个选项.它导致许多冗余代码和类名最终不再具有描述性,因为它们都必须具有相同的名称才能覆盖其他代码,即使它们可能正在做一些不同的事情.

另一个选择可能是使用类似的东西Dagger来构建ObjectGraph和注入不同实现的Intents.例如,如果是flavor1,则单击按钮X时,将ActivityA注入意图,如果是flavor2,ActivityB则注入意图.

这似乎是一种更好的方法,但我仍然不确定如何实现在默认情况下覆盖绑定的类ObjectGraph.

关于实施或其他选择的任何想法?我不是必须的Dagger,我只是开始研究依赖注入和测试,所以其他框架也能正常工作.

android android-build android-intent dagger

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

Android studio:preDexDebug失败了

我在构建android项目时遇到错误,甚至是一个hello world项目:

控制台输出:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:preDexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Applications/Android Studio.app/sdk/build-tools/19.1.0/dx --dex --output /Users/luyaochen/Documents/and/MyApplication3/app/build/intermediates/pre-dexed/debug/internal_impl-20.0.0-20e875ec0585f022fce03f5b07d31a0222ca3f58.jar /Users/luyaochen/Documents/and/MyApplication3/app/build/intermediates/exploded-aar/com.android.support/support-v4/20.0.0/libs/internal_impl-20.0.0.jar
  Error Code:
    1


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Run Code Online (Sandbox Code Playgroud)

请帮忙,我不知道出了什么问题

android android-build android-studio

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