gpt4 book ai didi

android - Cordova CLI 项目在工具链升级后忽略 build-extras

转载 作者:行者123 更新时间:2023-12-03 05:08:38 24 4
gpt4 key购买 nike

直到最近我一直在使用以下

  • Cordova Android 6.3.0
  • 梯度 4.9
  • 节点 8.9.2

  • 构建我的混合 Android 应用程序,该应用程序使用一个自定义 - 即由我编写的 - 插件。该插件又具有许多外部依赖项,我通过下面列出的 myapp/platforms/android/build-extras.gradle 文件指定这些依赖项
    ext.postBuildExtras = 
    {
    android
    {
    dependencies
    {
    compile 'com.squareup.duktape:duktape-android:1.3.0'
    compile 'net.zetetic:android-database-sqlcipher:3.5.9@aar'
    compile 'co.realtime:messaging-android:2.1.+'
    compile 'com.google.android.gms:play-services-location:15.0.1'
    compile 'com.android.installreferrer:installreferrer:1.0'
    }
    defaultConfig
    {
    jackOptions {enabled true}
    }
    compileOptions
    {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    }
    allprojects
    {
    compileOptions
    {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
    }
    }
    }
    }

    我的目标是 Android SDK 26,最低 SDK 级别设置为 23。我的 Cordova config.xml文件如下所示
    <?xml version='1.0' encoding='utf-8'?>
    <widget android-versionCode="1190" android-versionName="Etoile-2"
    id="my.app.id" version="1.1.9" xmlns="http://www.w3.org/ns/widgets"
    xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>My App</name>
    <description>My App</description>
    <author email="someone@gmail.com" href="https://example.org">My Name.
    </author>
    <content src="index.html" />
    <access origin="*" />
    <icon platform="android" qualifier="mdpi" src="res/mdpi.png" />
    <icon platform="android" qualifier="hdpi" src="res/hdpi.png" />
    <icon platform="android" qualifier="xhdpi" src="res/xhdpi.png" />
    <icon platform="android" qualifier="xxdpi" src="res/xxdpi.png" />
    <icon platform="android" qualifier="xxxdpi" src="res/xxxdpi.png" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
    <allow-intent href="market:*" />
    <FrameLayout android:focusable="true"
    android:focusableInTouchMode="true"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    </FrameLayout>
    <preference name="android-minSdkVersion" value="23" />
    <preference name="android-targetSdkVersion" value="26" />
    </platform>
    <preference name="Orientation" value="portrait" />
    <plugin name="ext.org.plugin" spec="path:\to\my\plugin" />
    <engine name="android" spec="^7.0.0" />
    </widget>

    我正在准备一台更现代的 Windows PC 来进行我的 Android 构建。在这个过程中我已经升级到
  • Cordova Android 7.0.0
  • Gradle 4.10.0(通过 Scoop 安装)
  • 节点 10.10.0

  • 我逐步完成了整个项目的重构过程
  • 创建一个新的 Cordova CLI 项目 cordova create myapp ext.example.myproj MyApp
  • 添加Android平台cordova platform add android其中添加了 Cordova Android 7.0.0
  • 构建这个虚拟应用程序cordova build android --debug : 工作
  • 替换默认的 Cordova config.xml使用我的版本(如上所示)减去对我的自定义插件的引用
  • 再次构建 - 仍在工作
  • 复制我原来的build-extras.gradle文件到 myapp/platforms/android
  • 再次构建 - 仍在工作
  • 添加我的自定义插件cordova plugin add 'path:\to\my\plugin
  • 发出 cordova clean后跟 cordova build android这会导致错误

    :app:compileDebugJavaWithJavac 路径:\to\my\app\platforms\android\app\src\main\java\ext\example\plugin\BCTrailer.java:4: 错误:包 net.sqlcipher 不存在
    导入 net.sqlcipher.Cursor;

  • 这似乎暗示我的 build-extras.gradle 的内容在构建期间未使用文件。我故意通过遗漏大括号使 XML 无效来破坏该文件。如果文件正在被读取,我原以为 Gradle 会提示。相反,它只是继续并发出相同的错误,例如 package net.sqlcipher不存在等

    我注意到 compile 的谈话在依赖项中被弃用,取而代之的是一系列全新的指令,例如 implementationapi .我尝试替换 compileimplementation在我自己的 build-extras.gradle文件,但无济于事。

    显然,我在这里做错了,这与 Gradle 的变化有关。

    最佳答案

    更新:在 cordova-android 7.1.3 中修复

    在 cordova-android 7.1.3 中,我的拉取请求被包括在内,所以 问题已修复 release notes

    对于cordova-android >= 7.0.0 但< 7.1.3

    移动(或复制)build-extras.gradleplatforms/android/app/
    老答案:

    我有一个类似的问题。从cordova-android 7.0 开始,cordova 更改了目录结构并错过了代码中的一些更改。

    获取 build-extras.gradle再次工作只需将其移动或更好地复制它(当cordova-android再次关注他们的文档时)到platforms/android/app/ .

    这里是 issue这里是相关的pull request

    关于android - Cordova CLI 项目在工具链升级后忽略 build-extras,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52409050/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com