【问题标题】:Can't resolve error: package android.support.design.widget does not exist issue无法解决错误:包 android.support.design.widget 不存在问题
【发布时间】:2020-07-03 05:42:04
【问题描述】:

使用 Capacitor AdMob 插件时难以在 Android 上构建 Ionic 项目。

AdMob.java 文件的第四行有这一行:

import android.support.design.widget.CoordinatorLayout;

design 出现错误,提示 无法解析符号“设计”,并且不存在 error: package android.support.design.widget 的构建错误

我已将此行添加到我的 build.gradle 文件中,但没有任何区别。 implementation 'com.android.support:design:28.0.0'

由于另一个插件,我不得不使用 AndroidX,但使用 Android Studio 中的迁移功能没有帮助。

这是长期问题还是我在某个地方的错误(我有网络开发和 iOS Swift 背景,所以构建 Android 项目对我来说很陌生,因此使用 Ionic)

谢谢

我的 build.gradle 文件是(我取消了 AndroidX 迁移,因为它没有帮助)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.skbarker.calwod"
        minSdkVersion 21
        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'
        }
    }
}

repositories {
    maven {
        url  "https://dl.bintray.com/ionic-team/capacitor"
    }
    flatDir{
        dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs'
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(':capacitor-android')
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation project(':capacitor-cordova-android-plugins')
}

apply from: 'capacitor.build.gradle'

try {
    def servicesJSON = file('google-services.json')
    if (servicesJSON.text) {
        apply plugin: 'com.google.gms.google-services'
    }
} catch(Exception e) {
    logger.warn("google-services.json not found, google-services plugin not applied. Push Notifications won't work")
}

【问题讨论】:

  • 我也有同样的问题,但是购买插件可以通过 Cordova 添加到电容器环境中。下一个大型电容器版本 (2.0.0) 支持 AndroidX,该版本现在处于测试阶段 2 周。我希望这能解决这些问题。
  • 我正在使用 beta 2 版本,但遗憾的是它并没有解决它。将您的 package.json 文件更改为 "@capacitor/android": "2.0.0-beta.0", "@capacitor/core": "2.0.0-beta.0", "@capacitor/ios": "2.0.0-beta.0" 看看是否有帮助
  • 感谢您的反馈西蒙。我今天将尝试 beta.1,如果效果不佳,我建议在 Capacitor repo 处开一张票,因为即使删除和添加 android 文件夹也不能解决问题。

标签: android android-studio ionic-framework cordova-plugins cordova-plugin-proguard


【解决方案1】:
npm install jetifier
npx jetify
npx cap sync android

如上一个答案中所述,然后将您的 android 项目迁移到 androidx one(从菜单栏中重构)

【讨论】:

    【解决方案2】:

    运行

    npm install jetifier
    npx jetify
    npx cap sync android
    

    这些命令将替换 AdMob.java 的第 4 行

    import android.support.design.widget.CoordinatorLayout;

    import androidx.coordinatorlayout.widget.CoordinatorLayout;

    然后打开Android Studio,shift+shift打开AdMob.java,点击红色下划线CoordinatorLayout导入包。

    【讨论】:

      【解决方案3】:

      在我在 AdMob 存储库中提出的这个问题上,我不得不在某人的帮助下完成了相当复杂的过程,遗憾的是,Ionic 论坛的支持很差。

      https://github.com/rahadur/capacitor-admob/issues/35

      【讨论】:

        【解决方案4】:

        以下步骤为我解决了这个问题:

        1. 将Capacitor升级到2.0.0(目前只有beta.1版本,所以我们必须手动升级)

          npm install @capacitor/android@next
          npm install @capacitor/core@next
          
        2. 删除android文件夹(只需将其重命名以进行备份)并通过Capacitor再次添加

          ionic capacitor add android
          
        3. 生成一个新版本,在 Android Studio 中打开并运行

          Refactor > Migrate to AndroidX
          

        【讨论】:

          猜你喜欢
          • 2016-06-20
          • 1970-01-01
          • 1970-01-01
          • 2021-09-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-23
          相关资源
          最近更新 更多