पढ़ नहीं सकता मैं एक आवेदन विकसित कर रहा हूं जो 65k सीमा से बचने के लिए मल्टीडेक्स को सक्षम करता है। मैं जार प्रकार (यानी आईपी जार एसडीके) में एक बाहरी पुस्तकालय जोड़ना चाहता हूं। मैंने ग्रैडल सिंक्रनाइज़ किया है और सफल रहा है लेकिन मैं प्रोजेक्ट चलाने में विफल रहा हूं।डीबग मल्टी डेक्स घटक हटना; डीआईआर/allclasses.jar
त्रुटि संदेश की तरह नीचे
Error:Execution failed for task ':app:shrinkDebugMultiDexComponents'.
java.io.IOException: Can't read [/[dir]/app/build/intermediates/multi-dex/debug/allclasses.jar] (Can't process class [com/ipay/IpayAcitivity.class] (Unknown verification type [14] in stack map frame))
यह मेरा Gradle कोड
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
def AAVersion = '3.2'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
}
}
repositories {
mavenCentral()
mavenLocal()
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName '[My Package]'
}
}
dependencies {
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
compile fileTree(dir: 'libs', include: ['*.jar'])
//Libs folder contains: org.apache.http.legacy.jar
//and ipay88_androidv7.jar
compile 'com.loopj.android:android-async-http:1.4.5'
compile 'com.github.rey5137:material:1.2.1'
compile 'com.jpardogo.materialtabstrip:library:1.0.9'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:recyclerview-v7:23.0.1'
compile 'com.google.android.gms:play-services:8.1.0'
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "[My Application Id]"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java', 'build/source/apt/debug']
resources.srcDirs = ['src/main/res']
res.srcDirs = ['src/main/res']
assets.srcDirs = ['src/main/assets']
}
beta {
resources.srcDirs = ['app/src/beta/res']
res.srcDirs = ['app/src/beta/res']
}
}
signingConfigs {
release {
...
}
}
}
है दिखाया गया है इससे पहले कि मैं बाहरी पुस्तकालय के इस प्रकार जोड़ा (यानी iPay जार एसडीके), एप्लिकेशन सफलतापूर्वक चल रहा था। लेकिन आईपी जार एसडीके (दूसरी जार लाइब्रेरी) को जोड़ने के बाद समस्या उत्पन्न हुई।
अधिक जानकारी के लिए, मैं पहले से ही इस गाइड का पालन कर चुका हूं https://developer.android.com/tools/building/multidex.html लेकिन यह मेरी परियोजना का काम नहीं करता है।
इस त्रुटि को ठीक करने के लिए आपका सुझाव क्या है?
पा सकते हैं जाहिर है वहाँ एक को दूर iPay एसडीके के साथ समस्या, और अधिक विशेष रूप से 'com/ipay/IpayAcitivity.class' के साथ। चूंकि एसडीके सार्वजनिक रूप से उपलब्ध नहीं है, इसलिए मैं वास्तव में इसे स्वयं से नहीं देख सकता। क्या आपने iPay के समर्थन से संपर्क करने की कोशिश की है? –
@AlexLipov हां, मैंने आईपी की सहायता टीम से संपर्क किया है। लेकिन, उन्होंने जवाब नहीं दिया है। जब मैंने एसडीके को किसी अन्य नई परियोजना पर लागू करने की कोशिश की (बिना मल्टीडेक्स के, तीसरे पक्ष के lib के बिना), परियोजना बिना त्रुटि के चल सकती है। – Izzuddiin
यह अपवाद प्रोगुआर्ड से आता है (ऐप: shrinkDebugMultiDexComponents कार्य आंतरिक रूप से प्रोगार्ड को आमंत्रित करता है - मेरा जवाब देखें [यहां] (http://stackoverflow.com/a/27207969/1233652))। इसलिए, यदि आप दूसरी परियोजना में 'minifyEnabled' को सत्य पर सेट करेंगे, तो शायद आपको एक ही त्रुटि होगी। –