android - 错误:程序类型已存在:com.getcapacitor.AndroidProtocolHandler

标签 android ionic-framework gradle build.gradle capacitor

enter image description here

我想生成 ionic 应用程序的APK,但我正在

Program type already present: com.getcapacitor.AndroidProtocolHandler

使用尖角构建ionic 4应用程序时出现错误。我在互联网上进行了搜索,找到了一个解决方案,说明更改
implementation 'ionic-team:capacitor-android:1+'


implementation project(':capacitor-android')"

build.gradle 文件中的依赖项中,但是我的依赖项中已经有实现项目(':capacitor-android')“,并且仍然出现错误。

这是我尝试过的解决方案的链接:https://github.com/oxylian/capacitor-facebook-login/issues/3

这是我的 build.gradle 文件
apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "io.ionic.starter"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner 'androidx.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 'androidx.appcompat:appcompat:1.1.0'
    implementation project(':capacitor-android')
//    implementation 'ionic-team:capacitor-android:1+'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    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")
}

这是我的 AndroidManifest.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="io.ionic.starter">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
            android:name="io.ionic.starter.MainActivity"
            android:label="@string/title_activity_main"
            android:theme="@style/AppTheme.NoActionBarLaunch"
            android:launchMode="singleTask">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="@string/custom_url_scheme" />
            </intent-filter>

        </activity>

        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths"></meta-data>
        </provider>
    </application>

    <!-- Permissions -->

    <uses-permission android:name="android.permission.INTERNET" />
    <!-- Camera, Photos, input file -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- Geolocation API -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature android:name="android.hardware.location.gps" />
    <!-- Network API -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- Navigator.getUserMedia -->
    <!-- Video -->
    <uses-permission android:name="android.permission.CAMERA" />
    <!-- Audio -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
</manifest>

最佳答案

问题是日期选择器插件,它具有您提到的那一行

https://github.com/triniwiz/capacitor-datepicker/blob/master/src/android/capacitor-datepicker/build.gradle#L45

有一个修复请求的拉取请求,但尚未合并
https://github.com/triniwiz/capacitor-datepicker/pull/12

关于android - 错误:程序类型已存在:com.getcapacitor.AndroidProtocolHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62170703/

相关文章:

android - Native Base 的操作表位于顶部

ionic-framework - 在 Ionic4 中初始化主页内的组件

java - Gradle构建结果

android - 在 Ubuntu 18.04 上 react 原生 Android 模拟器错误

android - 我无法使用phonegap执行我的应用程序

android - 我可以设置android :layout_toLeftOf programmatically?吗

android - PhoneGap 安卓 iOS NFC

c# - 我用来制作 .zip 文件的代码正确吗?

ionic-framework - 如何在 Ionic 中动态更改 ionic 范围颜色?

javascript - Ionic 和 Angularjs - 表单绑定(bind)似乎只是一种方式。