GVKun编程网logo

android – Gradle执行失败,任务’Project:processDebugManifest’(android gradle project sync failed)

17

关于android–Gradle执行失败,任务’Project:processDebugManifest’和androidgradleprojectsyncfailed的问题就给大家分享到这里,感谢你

关于android – Gradle执行失败,任务’Project:processDebugManifest’android gradle project sync failed的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Android Gradle Plug 4.1.0 升级后gradle获取manifest位置失败问题解决、Android gradle执行失败、Android Studio Gradle - 任务':app:processDebugManifest' 的配置发现问题、Android Studio 一直显示 Building “project name” Gradle project info 问题详解等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

android – Gradle执行失败,任务’Project:processDebugManifest’(android gradle project sync failed)

android – Gradle执行失败,任务’Project:processDebugManifest’(android gradle project sync failed)

我开始在Android上使用谷歌播放服务API,并在阅读了几个教程并做了几个方法后,我总是有同样的错误.

Gradle: Execution Failed for task ':Teste:processDebugManifest'.
> java.lang.RuntimeException (no error message)

要导入google play库,我将goggle-play-service_lib的粘贴复制到我的项目中,包括jar文件到我的项目结构.(我正在使用Android Studio)

最后它看起来像这样:

App AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.teste"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="16" />

    <permission
            android:name="com.metyou1.permission.MAPS_RECEIVE"
            android:protectionLevel="signature"/>
    <uses-permission android:name="com.metyou1.permission.MAPS_RECEIVE"/>

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-feature
            android:glEsversion="0x00020000"
            android:required="true"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.teste.FullscreenActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/FullscreenTheme" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <Meta-data
                android:name="com.google.android.maps.v2.API_KEY"
                android:value="MYKEY"/>
    </application>

</manifest>

App build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile project(':google-play-services_lib')
    compile files('libs/android-support-v4.jar')
}

android {
    compileSdkVersion 17
    buildToolsversion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

google-play-services_lib build.gradle

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android-library'

dependencies {
    compile files('libs/google-play-services.jar')
}

android {
    compileSdkVersion 17
    buildToolsversion "17.0.0"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            res.srcDirs = ['res']
        }
    }
}

有人可以帮帮我吗?

谢谢

Android Gradle Plug 4.1.0 升级后gradle获取manifest位置失败问题解决

Android Gradle Plug 4.1.0 升级后gradle获取manifest位置失败问题解决

问题背景

项目编译过程中,使用了类似Android Gradle Plugin的gradle插件进行编译,在最终打包apk时,会动态修改manifest文件。

近期发现线上用户有反应升级到以下开发环境后,打包apk后manifest文件中没有应有的任何配置。

Android Gradle Plugin:4.1.0
Gradle:6.5
Android Studio:4.1

确认调查方向

首先要确认清楚到底是上述3个哪个的升级导致的问题。

在本地进行环境升级过程验证了以下结论:

Android Gradle Plugin:4.1.0 强制要求 Android Studio:4.1 + Gradle:6.5。然而 以下环境下打包过程是正常的:

Android Gradle Plugin:4.0.2
Gradle:6.5
Android Studio:4.1

Android Gradle Plugin:4.0.2 是 4.1 的前一个版本,至此可以确认是 Android Gradle Plugin:4.1.0 的升级导致的不兼容问题。

明确了调查的方向,接下来就可以有的放矢了。

调查分析

我们的gradle插件,是通过以下代码获取到manifest文件后做处理的:

new File(output.processManifestProvider.get().manifestOutputDirectory.get().getAsFile(), "AndroidManifest.xml")

其实并非如此简单,只是这一句是最关键的。在gradle插件中增加了一些关键打印语句后,编译过程中得到了以下错误提示:

Could not get unknown property ''manifestOutputDirectory'' for task '':app:processDebugManifest'' of type com.android.build.gradle.tasks.ProcessMultiApkApplicationManifest

百度了一下,没有任何相关记录,毕竟距离 Android Gradle Plugin:4.1.0 正式发布才过去2个月,只好自给自足。

很明显是读取manifest文件位置的属性失效了,那最直接的方法就是看源码。找到 Android Gradle Plugin:4.1.0 的jar包看看就行。

又是百度一下,很可惜,没有下载地址。

上JCenter找,结果JCenter仓库只更新到2.x版本。

也对,好像是从 Android Studio 3.0 开始,google就将 Android Gradle Plugin 转移至 google() 仓库了,那只能去 google() 仓库找了,一时半会也不知道具体地址,以前的编译过程中也没留意看studio的编译日志输出,当然如果是一个全新工程环境,编译一下,肯定能找到仓库地址的,不过我懒得搞。

先到AS的缓存路径下碰碰运气吧,不过碰运气也得先有个方向,别忘了Android Gradle Plugin的classpath配置:

classpath ''com.android.tools.build:gradle:4.1.0''

果不其然,在以下路径找到了:

/Users/jackie/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle

加载过的各种版本都有,直接拿到 4.1.0 的jar包看源码,在 ProcessMultiApkApplicationManifest.class 中找到了以下代码:

File mergedManifestOutputFile = new File(((Directory)getMultiApkManifestOutputDirectory().get()).getAsFile(), 
  FileUtils.join(new String[] { dirName, 
    "AndroidManifest.xml" }));

同时还有一个抽象方法:

public abstract DirectoryProperty getMultiApkManifestOutputDirectory();

看来属性已经变成了 multiApkManifestOutputDirectory。

如果不确定,我们再看看 4.0.2 的源码,在 ProcessApplicationManifest.class 中找到了以下代码:

复制代码 代码如下:
File manifestOutputFile = new File(((Directory)getManifestOutputDirectory().get()).getAsFile(), FileUtils.join(new String[] { apkData.getDirName(), "AndroidManifest.xml" }));

很明显,在 4.0.2 版本时,获取manifest文件路径的属性确实是 manifestOutputDirectory ,而task本质上是一个 ProcessApplicationManifest 实例,但从 4.1.0 版本开始, task变为 ProcessMultiApkApplicationManifest 的实例,属性变为 multiApkMnifestOutputDirectory 了。

好了,剩下的就是做一下版本兼容了,大功告成。

复制代码 代码如下:
new File(output.processManifestProvider.get().multiApkManifestOutputDirectory.get().getAsFile(), "AndroidManifest.xml")

总结

大部分基于gradle的编译脚本,其工作原理都一样,就是在编写自定义的task、在某个预设的task之前或之后做自定义的特殊处理等等,更高级一点的gradle插件也不例外。

而 Android Gradle Plugin 同样也只是一个Google官方开发的gradle插件,每次升级版本都会伴随着一些“task名变更”、“task处理内容变更”、“task执行顺序变更”等等的更新,这些更新很可能就会影响到我们这些基于其“预置task”做特殊处理的gradle插件,所以大部分版本兼容问题都应该从这个方向出发调查。

另外,有时候Gradle的升级也会带来一些兼容问题。

到此这篇关于Android Gradle Plug 4.1.0 升级后gradle获取manifest位置失败问题解决的文章就介绍到这了,更多相关Android Gradle4.1升级内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • AndroidStudio升级4.1坑(无法启动、插件plugin不好用、代码不高亮)
  • Android studio升级4.1时遇到的问题记录
  • Android Studio IDE升级4.1以后Start Failed
  • Android将Xamarin For VS升级为4.1.0.530版教程

Android gradle执行失败

Android gradle执行失败

背景

  由于政策关系,我们Android开发过程中,难免会需要科学上网,而科学上网有时就可能会和我们当前公司内网有所冲突,导致一些依赖包上传下载的问题,或者gradle任务执行失败。

   下面介绍下查看这种问题时,可以考虑的一些方案。

1. 科学上网

        一般使用一些vpn,或者在自己电脑的网络设置上设置ip代理等,Android Studio可以通过proxy 设置代理。通过科学上网可以拉取gradle等一些包体依赖资源,而这也会导致到可能我们内网的一些依赖资源就因为设置了代理而获取不到导致gradle同步异常,或者gradle任务执行失败。

2. 异常网络问题排查

       1. 关闭电脑的代理(VPN或者是网络设置的代理)
       2. 关闭Android Studio的代理(proxy里去掉代理)
       3.Android Studio是否开启了offline 模式检查
       4. 项目里gradle.properties 查看是否设置了代理
       5. 清除本地gradle代理  运行下该命令 open ~/.gradle/gradle.properties 在打开
        的文件中查看是否设置了代理
     6.是否开启了Charles检查,Charles如果全局代理捕获会拦截一些请求

  Android Studio的一些设置项可以在修改后invalidate cache/restart下

如果是自己本机的问题,基本都可以通过上述的方案解决,如果还是有问题,可以尝试是否服务地址能ping通,考虑下是否远端服务有问题。

Android Studio Gradle - 任务':app:processDebugManifest' 的配置发现问题

Android Studio Gradle - 任务':app:processDebugManifest' 的配置发现问题

如何解决Android Studio Gradle - 任务'':app:processDebugManifest'' 的配置发现问题?

几个月前我已经遇到了这个错误,“解决方案”是降级 gradle。一段时间后,由于某种原因,我可以使用最新版本,一切正常。

直到现在,我再次收到此错误消息,但无法再次降级 gradle,因为某些最新插件将不再可用,我也必须将它们降级。

我只是想让这堆叫做 android studio 的垃圾在他们最新的 bs 上正常工作!

我该如何解决这个问题??

这是错误:

A problem was found with the configuration of task '':app:processDebugManifest'' (type ''ProcessMultiApkApplicationManifest'').
  - In plugin ''com.android.internal.version-check'' type ''com.android.build.gradle.tasks.ProcessMultiApkApplicationManifest'' property ''mainMergedManifest'' specifies file ''G:\projekte\ANDROID\xxxx\app\build\intermediates\merged_manifest\debug\AndroidManifest.xml'' which doesn''t exist.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

我也收到警告:

The ''kotlin-android-extensions'' Gradle plugin is deprecated. Please use this migration guide (https://goo.gle/kotlin-android-extensions-deprecation) to start working with View Binding (https://developer.android.com/topic/libraries/view-binding) and the ''kotlin-parcelize'' plugin.

当我“运行”建议时,我得到:

enter image description here

它说一些 navigation.json 无法找到,这到底是什么

解决方法

好的,问题是因为项目文件在不是 ntfs 的 USB 驱动器上,将它们移动到 ntfs 驱动器修复了它

Android Studio 一直显示 Building “project name” Gradle project info 问题详解

Android Studio 一直显示 Building “project name” Gradle project info 问题详解

关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己。 
本篇文章同步微信公众号 

欢迎大家关注我的微信公众号:「醉翁猫咪」 


Android Studio 一直显示

Building “project name” Gradle project info 问题详解


大家好,我是小达同学,有朋友遇到,Android Studio 一直显示 Building “project name” Gradle project info 问题,我记得最初没有这情况,啊,不急,这个情况,是因为项目在下载相应的 grdle,但因为网络不好,就会一直处于这状态,不过好像我网络好。


解决方法可以自己下载 gradle 版本放到相应的 gradle 路径中


打开 “C:\Users\ 用户名 \.gradle\wrapper\dists”  会发现:




如果你想下载相应的 gradle 的话,可以去官网下载:

https://gradle.org/

http://services.gradle.org/distributions/



下载后,放到相应的路径,就 OK,给你看个 3.3 的。

安装完成后,重新启动 Android Studio 就可以了。



如果觉得不错,可以分享哦,你的鼓励是我最大的进步!

从入门到熟悉!

坚决不放弃!


本文同步分享在 博客 “程序员哆啦 A 梦”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

今天关于android – Gradle执行失败,任务’Project:processDebugManifest’android gradle project sync failed的讲解已经结束,谢谢您的阅读,如果想了解更多关于Android Gradle Plug 4.1.0 升级后gradle获取manifest位置失败问题解决、Android gradle执行失败、Android Studio Gradle - 任务':app:processDebugManifest' 的配置发现问题、Android Studio 一直显示 Building “project name” Gradle project info 问题详解的相关知识,请在本站搜索。

本文标签:

上一篇android – 在ViewPager和setFillAfter上使用动画(android中viewpager)

下一篇Android java.lang.ClassCastException:android.widget.LinearLayout无法强制转换为android.widget.TextView