Articles of android gradle

Android multidex,UnsatisfiedLinkError – 找不到.so文件

我试图添加一些lib(.jar&.so)到我在android studio的multidex项目。 当我只添加几个jar子的项目一切工作正常。 万一我添加更多的jar子(其他库)我得到这个错误: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.test.digital.ocrtest-2/base.apk"],nativeLibraryDirectories=[/data/app/com.test.digital.ocrtest-2/lib/arm, /data/app/com.test.digital.ocrtest-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]] couldn't find "libScanovatePassportAndIDLSDK_CPP.so" 任何想法如何告诉编译器生成jar,所以在相同的dex?

如何解决Android Studio错误,找不到项目的清单文件?

我将我的遗留项目从Eclipse迁移到Android Studio。 我做了以下事情: 在eclipse中导出并生成gradle构build文件 在Android Studio中导入Gradle.build文件 更改我的gradle版本依赖关系为:classpath'com.android.tools.build:gradle:0.9.+' 该项目的根文件夹包含3个库项目: Actionbarsherlock , Authbahn和库 。 我的根文件夹还包含名为JohelpenHulpverlener的主项目。 解决了很多错误后,我得到以下错误: Error:A problem was found with the configuration of task ':checkDebugManifest'. > File 'C:\android\jeugdformaat\JohelpenHulpverlener\AndroidManifest.xml' specified for property 'manifest' does not exist. 我的根build.gradle看起来像这样: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { mavenCentral() } […]

Android Studio Gradle问题更新到版本0.6.0后

由于我更新Android Studio到版本0.6.0我面临以下问题与Gradle同步: 关于Google+和Google adt-dev小组的讨论表明,自动启用导致此问题的新Manifest Merger。 这两个平台上的讨论和解决scheme是不清楚的,虽然我尝试添加android { useOldManifestMerger true; } android { useOldManifestMerger true; }在build.gradlebuild议,但我仍然得到这个错误。 PS:我们正在使用RoboGuice,并怀疑它可能是兼容性问题。 这里是日志: 2014-06-09 11:07:35,927 [ 171888] WARN – nal.AbstractExternalSystemTask – Cause: com.android.builder.BuilderConstants com.intellij.openapi.externalSystem.model.ExternalSystemException: Cause: com.android.builder.BuilderConstants at org.jetbrains.plugins.gradle.service.project.AbstractProjectImportErrorHandler.createUserFriendlyError(AbstractProjectImportErrorHandler.java:106) at org.jetbrains.plugins.gradle.service.project.BaseProjectImportErrorHandler.getUserFriendlyError(BaseProjectImportErrorHandler.java:153) at org.jetbrains.plugins.gradle.service.project.BaseGradleProjectResolverExtension.getUserFriendlyError(BaseGradleProjectResolverExtension.java:352) at com.android.tools.idea.gradle.project.AndroidGradleProjectResolver.getUserFriendlyError(AndroidGradleProjectResolver.java:334) at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:364) at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:330) at org.jetbrains.plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:203) at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:116) at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:64) at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:41) at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:37) at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.java:59) at […]

在Android Gradle构build中,如何从包含的jar文件中排除依赖关系?

在我的Android项目中,我使用了一个来自jar的库。 我将它包含在依赖部分中,如下所示: dependencies { … compile files('libs/thethirdpartylibrary.jar') … } 我也想使用okhttp库,我这样包含: compile ('com.squareup.okhttp:okhttp:2.7.5') (这个okhttp的特定版本取决于okio 1.6.0。) 问题是第三方的jar库取决于okio v0.9.0,更糟糕的是,它捆绑。 因此,我在构build时遇到了dex冲突错误。 我能够通过手动删除jar文件中的okio来解决这个问题,这似乎工作。 但我想知道是否有办法在gradle中做到这一点。 我的问题:我可以删除捆绑,传递(< – 我希望我正在使用这个单词正确的方式)依赖关系从一个包括的jar在编译时与gradle?

我们如何在Android库模块中inheritancetesting类?

我有一个Android Studio项目,有两个库模块: foo-module和bar-module 。 每个实现一个库, foo-module bar-module根据foo-module定义一个策略接口和bar-module ,并实现这样一个策略。 foo-module使用stub策略实现来testing其核心代码( foo-module/src/androidTest/ ),并且bar-module应该有它自己的testingtesting。 我在foo-module/src/androidTest/中定义了一个AbstractTests类,它完成了大部分的实际testing。 我还在foo-module/src/androidTest/中有一个StubTests类,它扩展了AbstractTests并实现了必要的abstract方法来完成testing用例(提供策略的实现等)。 这一切都很好。 在bar-module/src/androidTest/ ,我创build了一个BarStrategyTests类,用于镜像StubTests ,但提供了在bar-module实现的策略。 然而, BarStrategyTests无法看到AbstractTests ,即使我在我的build.gradle文件中compile project(':foo-module') ,而bar-module的主要(非testing)类可以正常工作,testing) foo-module类。 IOW,而project()依赖处理常规代码,而不处理androidTest/ code。 我得到“错误:包com.commonsware.foo.test不存在”。 我也尝试添加androidTestCompile project(':foo-module') ,结果相同。 在模块之间共享仪器testing代码的方法是什么? 暂时我可以克隆AbstractTests ,但这不是一个很好的长期解决scheme。 这个问题涵盖了普通Java的相似之处。 有没有人试过一个答案的选项,并得到他们为Android仪器testing工作? 第一个选项(把普通的testing代码作为普通的非testing代码移动到另一个模块中)似乎是合理的,但是我不知道其他两个是否可以用com.android.library插件而不是java插件。

在Android Studio中使用Gradle是强制的吗?

自从官方发布以来,我正在使用android studio。 到目前为止,我使用的是Android Studio版本2.1.2,我需要等待几个小时才能第一次导入项目,并让Gradle同步。 有些人build议在离线模式下运行android studio,但是当我想使用外部库时,我需要使我的项目同步,所以我必须启用gradle。 有没有办法可以摆脱Gradle? 举个例子: 4:19:03 PM Executing tasks: [:app:clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:prepareDebugUnitTestDependencies, :app:mockableAndroidJar, :app:assembleDebug] 现在已经是四点半了,还在跑马圈上! 只需要在Eclipse中按F11并在20秒内debugging应用程序。

不同的库/import取决于构buildtypes

在Android应用程序中,我需要为特定的外设使用特定的SDK。 一切工作正常与一个单一的构build变种: provided fileTree(include: ['peripheral.jar'], dir: 'libs') compile fileTree(exclude: ['peripheral.jar'], dir: 'libs') 问题在于SDK依赖于实际外设中安装的共享库。 如果我尝试在其他Android设备上安装应用程序(用于其他function的debugging), INSTALL_FAILED_MISSING_SHARED_LIBRARY收到INSTALL_FAILED_MISSING_SHARED_LIBRARY错误。 我想我可以使用两个构build变体: release ,使用SDK debug ,那不使用SDK 我已经尝试在release构buildtypes中包括SDK: releaseProvided fileTree(include: ['peripheral.jar'], dir: 'libs') releaseCompile fileTree(exclude: ['peripheral.jar'], dir: 'libs') 但是,由于缺lessimport,我无法编译这个项目。 所以我重复使用这些导入的唯一类: 在main/java/package/PeripheralManager.java : public class ScannerManager { // fake } 在release/java/package/PeripheralManager.java : import peripheral; <- IT FAILS WHEN COMPILING public class ScannerManager { […]

isMinifyEnabled()已弃用。 有什么select?

我使用下面的代码,根据产品的风味,显然自动生成职业防护贴图文件。 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" } } } } } } } 在将android studio升级到3.0之后,它显示一个警告isMinifyEnabled()已过时,我无法find任何解决scheme或此isMinifyEnabled()的替代scheme。 任何帮助提前谢谢?

9修补图像防止生成项目android studio

我正在转向Gradle构build。 但我有很多9贴片图像的这个错误。 请注意,绘制是由http://android-holo-colors.com自动生成的,但是它们是旧的。 我正在使用android studio 0.5.1和我的构build工具版本是19.0.3这是错误 Error:Execution failed for task ':app:mergeDebugResources'. > Error: Failed to run command: /Applications/Android Studio.app/sdk/build-tools/19.0.3/aapt s -i /Users/Ed/Desktop/TestAndroid/app/src/main/res/drawable-mdpi/spinner_default_holo_dark.9.png -o /Users/Ed/Desktop/TestAndroid/app/build/res/all/debug/drawable-mdpi/spinner_default_holo_dark.9.png Error Code: 42 Output: ERROR: 9-patch image /Users/Ed/Desktop/TestAndroid/app/src/main/res/drawable-mdpi/spinner_default_holo_dark.9.png malformed. Frame pixels must be either solid or transparent (not intermediate alphas). Found at pixel #3 along top edge. /Users/Ed/Desktop/TestAndroid/app/src/main/res/drawable-hdpi/cab_background_bottom_test.9.png Error:Ticks in transparent […]

Proguard减慢了android构build过程

启用ProGuard后,我的Android应用程序构build过程需要3分钟以上。 为了加快速度,我可以做些什么基本的事情?