AndroidManifest抱怨Element Application(和MultiDexApplication)不允许在这里。

时间:2016-05-10 12:49:00

标签: android-activity gradle multidex

如果这看起来像是重复的帖子,我很抱歉。相信我不是。我搜遍了所有的stackoverflow和互联网,但无法找到任何有用的解决方案。

一切都很好,直到我将这一行添加到我的android工作室

compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:1.0.0'
compile ‘com.google.zxing:core:3.2.1’

然后我意识到应用程序无法构建。关于重复方法声明的东西BarcodeFormat.class .....我用第二行替换了 compile('com.github.kenglxn.QRGen:android:2.1.0') { exclude group: 'com.google.zxing', module: 'core' }

我建造了它并且它成功了。现在,AndroidManifest中不再识别应用程序标记以及所有组成的Activity标记。因此,无法在apk安装上找到启动器活动。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ng.softworks.unorthodox.iretriever" >

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

<MultiDexApplication
    android:name=".app.VolleyController"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity android:name=".activity.App_Splashscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".activity.MainActivity" >
    </activity>
    <activity android:name=".activity.AddLostListing" >
    </activity>
    <activity android:name=".activity.AddFoundListing" >
    </activity>
</MultiDexApplication>

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "ng.softworks.unorthodox.iretriever"
    minSdkVersion 11
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    // Enabling multidex support.
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
                'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile project(':volley')
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:recyclerview-v7:23.3.0'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.github.javiersantos:MaterialStyledDialogs:1.4'
compile 'com.android.support:support-v4:23.3.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:1.0.0'
compile('com.github.kenglxn.QRGen:android:2.1.0') {
    exclude group: 'com.google.zxing', module: 'core'
}
compile 'com.android.support:multidex:1.0.1'
}

请帮帮我。这让我疯狂,因为我无法找到任何特定的错误来解决这个问题!

2 个答案:

答案 0 :(得分:0)

重复的方法声明是由于com.dlazaro66.qrcodereaderview:qrcodereaderview:1.0.0将自己的zxing版本捆绑到core.jar

如果要使用该lib,则应确保排除core.jar。

或者确保zxing不包括在其他地方。

答案 1 :(得分:0)

原来使用Zing和QRCodeReaderView最初混淆了项目内部。我不得不迁移到一个新项目,这一次,增加了对QRGen的依赖(除了Zing&#39的core.jar)和QRCodereaderview。它运作得很好。