0

使用 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")
}
4

4 回答 4

1

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处导入包。

于 2020-12-15T04:40:42.877 回答
0

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

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

于 2020-03-27T15:51:24.377 回答
0
npm install jetifier
npx jetify
npx cap sync android

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

于 2021-01-13T14:18:16.063 回答
0

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

  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
    
于 2020-03-26T16:17:04.723 回答