Articles of 创build

管理Androidapp store(Google / Amazon / etc)的代码/构建?

我有一个主要从Android Market(现在是Google Play)下载的Android应用。 我们对源进行了一些调整,并提交给亚马逊app store以了解它获得了什么样的牵引力。 我现在正在寻找一种可持续的方式来从一个共同的代码库开发,然后构建,以便我可以提交给两个/两个。 亚马逊的商店对可用的API有一些限制,因此我想有条件地删除/修改该版本的function。 由于Java不支持传统的条件编译,并且在Eclipse中有条件地包含文件似乎并不简单(甚至可能吗?),我想问其他人正在做些什么来解决这个问题。 不可否认,我不是Eclipse / Java专家,所以我可以随意上学。 我正在寻找解决方案: 使用Eclipse构建/调试。 静态代码文件,环境/设置切换以控制要构建的内容。 代码中没有重复的代码或条件逻辑来在运行时选择代码流 这是您为Android应用专门解决的问题,还是其他基于Java / Eclipse的项目? 建议从哪里开始?

切片签名与android studio默认运行不一致

我已经配置gradle用于签名: android { … signingConfigs{ debug { storeFile file(“…”); storePassword ‘…’ keyAlias ‘…’ keyPassword ‘…’ } } } 现在,当我运行Gradle任务installDebug时,应用程序已正确签名并安装,我可以按预期运行应用程序。 但是当我运行app模块时(android studio默认运行,这是调试的首选)。 我收到的消息是: Failed to finalize session : INSTALL_FAILED_INVALID_APK: /data/app/vmdl2083307194.tmp/1_slice__ signatures are inconsistent 即使尚未安装No apk也会发生这种情况。 我认为这与android studio不正确地拆分apk有关。 因此,如果没有人知道如何使它正确签名一种方法来保持android工作室不分裂apk也可能会工作。

错误:(6,0)未findGradle DSL方法:’google()’

/Users/Ren/Desktop/RecylerViewBaseAdapter/build.gradle Error:(6, 0) Gradle DSL method not found: ‘google()’ Possible causes: The project ‘RecylerViewBaseAdapter’ may be using a version of Gradle that does not contain the method. Gradle settings The build file may be missing a Gradle plugin. Apply Gradle plugin

Xamarin.Android构建/部署非常慢。 如何加快速度?

我们有一个大型的Xamarin.Android项目,有两个依赖项目和一堆第三方dll。 在Hax-x86仿真器或Nexus 5设备上进行调试部署(无需任何更改)非常缓慢(> 80秒)。 为了比较,App的Xamarin.iOS版本在7秒内部署到真实设备上。 为了测试部署时间,我还创建了一个新的Xamarin.Android项目,该项目在大约四秒钟内部署。 添加依赖项目时,部署时间最多为7秒。 当我将布局文件添加到依赖项目时,部署时间增加到大约十秒。 是否可以使用Xamarin Studio加速Android构建和部署? 相比之下,大型Eclipse Android项目的部署速度相当快。 更新: 只运行安装构建步骤大约需要40秒: time xbuild /t:Install BigApp.csproj … … … Time Elapsed 00:00:42.8526970 大约一半的时间花在上面命令打印到控制台的地方: Target _CompileDex: JavaSourceFiles: JavaLibraries: ExternalJavaLibraries: Tool /usr//bin/java execution started with arguments: -Xmx512M -jar /Users/myname/Library/Developer/Xamarin/android-sdk-mac_x86/build-tools/17.0.0//lib/dx.jar –no-strict –dex –output=obj/Debug/android/bin/classes.dex obj/Debug/android/bin/classes /Library/Frameworks/Xamarin.Android.framework/Versions/Current/lib/mandroid/platforms/android-15/mono.android.jar /Users/myname/Projects/BigApp/obj/Debug/__library_projects__/TestFlightBindings.Jars.TestFlightLib_1_2.jar /Users/myname/Projects/BigApp/obj/Debug/__library_projects__/android-support-v4.jar /Users/myname/Projects/BigApp/obj/Debug/__library_projects__/classes.jar /Users/myname/Library/Developer/Xamarin/android-sdk-mac_x86/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar 当我从Xamarin Studio运行解决方案时,此步骤发生两次。 一次用于依赖项目,一次用于主项目。 我尝试在控制台上重现此行为 “/Applications/Xamarin Studio.app/Contents/MacOS/mdtool” -v […]

Android打包问题:resources.ap_不存在

我试图在Eclipse中解决问题3个小时,但我没有取得任何进展。 明天是客户来看我的应用程序,我没有时间离开。 这真是令人沮丧! 今天早上,当我编写代码时,我想在我的设备上运行我的应用程序,Eclipse突然崩溃了。 ‘aapt.exe已停止工作’ 此后Eclipse不再启动了。 它在飞溅的图像上冻结了。 我查看了互联网并尝试了不同的解决方案,例如回到Java SE 6更新20,更改.ini文件等,最后重新安装Eclipse完成了这项工作。 不久之后’aapt.exe已停止工作’返回。 我通过改变我的项目目标find了解决方案。 1.5,1.6,2.2没关系,只要它与之前的那个不同。 现在我得到Error generating final archive: java.io.FileNotFoundException: C:\xxx\bin\resources.ap_ does not exist错误。 我试过干净,但这不起作用。 删除并自动重新生成R.java也不起作用。 我使用Android插件在Netbeans中运行相同的代码,在那里它让’aapt.exe再次停止工作’:( 请伙计们,我该如何解决这个问题? 编辑: 我想我可能find了原因。 这些是控制台中的错误行: org.xmlpull.v1.XmlPullParserException: Binary XML file line #3: requires a valid src attribute at android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:341) at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:779) at android.graphics.drawable.Drawable.createFromXml(Drawable.java:720) at com.android.layoutlib.bridge.ResourceHelper.getDrawable(ResourceHelper.java:150) at com.android.layoutlib.bridge.BridgeTypedArray.getDrawable(BridgeTypedArray.java:668) at android.view.View.(View.java:1846) at android.view.View.(View.java:1795) at […]

在Android Studio和Gradle中的Android App模块中使用不同的构建types的库模块

我有一个工作区,包含几个不同的应用程序和一个公共的库项目,我希望从Eclipse转换为Android Studio,从Ant转换为Gradle。 目前,在我们的ant脚本中,我们会在编译之前替换一些类中的文本,具体取决于构建是用于调试目的,QA,Beta /客户验收测试还是用于发布到Google Play。 我想利用Gradle中的构建变体系统并使用值资源(布尔值,字符串等)来防止构建脚本替换我的类中的文本。 由于在我的所有应用产品中复制所有构建types的不同值将是一个维护问题,我想将它们放在我的公共库中的构建types中。 我试过这个,但无论我在我的app模块中使用哪种构建types,app模块都会引入公共库模块的Release版本。 有没有什么办法可以让app模块的不同构建types使用库模块的相应构建types? 这是从Android Studio运行的,其中Build Variants工具窗口将两个模块显示为使用调试变体。 图像应该读取应用程序和库的调试。

Android Gradle build:重命名apk

如何调整build.gradle以更改apk的最终基本名称? (不更改默认后缀)

Android Gradle构建失败:找不到com.google.android:support-v4:r18

编辑: 这个问题似乎以某种方式消失了,这可能是由于新的Gradle构建系统变得更加成熟。 我有两个独立的Android项目: 第一个项目是使用Gradle的‘android-library’插件的Android库 ,它取决于support-library-v4:r18 。 来自build.gradle中的 依赖项的片段 : compile ‘com.android.support:support-v4:18.0.0′ 支持库是从Android SDK Manager安装的Android Support Repository中获取的,如此处所述。 然后通过运行: gradle uploadArchives构建该项目并将其发布到maven本地存储库 我validation了,然后库.aar随后在本地maven存储库下可用。 第二个项目是一个Android应用程序,使用Gradle的‘android’插件,它引用第一个项目生成的库的maven依赖 。 这是build.gradle的一个片段: repositories { mavenLocal() mavenCentral() } dependencies { compile ‘com.android.support:support-v4:18.0.0’ compile ‘com.example:cool-lib:1.0.0-SNAPSHOT’ } 注意:这两个项目完全分开。 这意味着,它们不是同一根项目的子项目。 当我尝试通过运行: gradle assemble来构建第二个项目时 我收到以下错误: Could not find com.google.android:support-v4:r18. Required by: com.example:app-project:unspecified > com.example:cool-lib:1.0.0-SNAPSHOT 我在我的本地maven repo文件夹下检查了cool-lib的.pom文件,我发现它有以下依赖项: com.android.support support-v4 18.0.0 […]

targetSdkVersion和Project构建目标之间的区别

在Manifest文件中设置的targetSdkVersion与构建环境中设置的Project构建目标(例如Eclipse)之间有什么区别? 我试图find有关这两个function的更多信息,但我找不到任何明确和具体的解释。 似乎Project构建目标决定了在编译期间使用的API兼容级别。 当targetSdkVersion仅影响给定API级别的清单元素的可见性时。 任何人都可以确认/解释这个吗? 编辑 :谢谢你们迅速回复。 我忘记在我的问题中提到我已经阅读了Android Dev上有关这些function的所有主题,并且还搜索了它并在Stack Overflow上搜索了它。 所以我理解min / target / maxSdkVersion在Android Market和Android System中使用的基本目的。 但是,根据人们在使用此Manifest选项时出现问题的其他post,似乎uses-sdk确实会对API级别的解释方式产生影响。 至少这是我怀疑的。 这里给出了一个非常好的解释: http : //developer.android.com/guide/appendix/api-levels.html 但是,我仍然不清楚targetSdkVersion是否会影响Android系统上APK的编译/运行时间? 或者它仅用于validation,因为uses-sdk文档建议?

如何以编程方式读取我的Android apk构建时的日期?

是否有可能以编程方式读取我的Android apk构建时的日期? 我在PackageInfo类中找不到任何东西。 我想要使​​我的应用程序的beta版本到期,最简单的方法是读取这样的日期并在修复预定日期之后将其过期,因此我不必更新代码,因为我构建和部署了一段时间测试版。