android - माता-पिता को आइटम के लिए पुनः प्राप्त करने में त्रुटि: कोई संसाधन नहीं मिला जो अप्पमैट v23 में अपग्रेड करने के बाद दिए गए नाम से मेल खाता हो
android-studio gradle (16)
Android Studio अपग्रेड करें।
एंड्रॉइड स्टूडियो 1.3.1 के साथ मेरे पास यह मुद्दा था और किसी भी अन्य उत्तर ने मेरे लिए काम नहीं किया, लेकिन 1.5.1 में अपडेट करने के बाद कोई समस्या नहीं थी।
मैंने हमेशा एंड्रॉइड को ग्रहण के साथ प्रोग्राम किया है और एंड्रॉइड स्टूडियो में माइग्रेट करना शुरू करने का फैसला किया है। मैंने उसी SDK का उपयोग करने का निर्णय लिया जो मेरे पास पहले से ही ग्रहण के लिए था, फिर:
- एक नई परियोजना शुरू की
- न्यूनतम एसडीके 4.0 (एपीआई स्तर 14) सेट करें
- रिक्त गतिविधि विकल्प चुनें
- गतिविधि के नाम और लेआउट के नाम के लिए डिफ़ॉल्ट नामों का उपयोग किया
- मारो खत्म
कुछ सेकंड के बाद ग्रैडल बिल्ड को पूरा करता है, और यह मुझे दो त्रुटियों को फाइल में निम्नलिखित संदेशों के साथ फेंक देता है Teste4 \ app \ build \ मध्यवर्ती / विस्फोट / aar \ com.android.support \ appcompat-v7 \ 233.0 \ res \ मान -v23 \ मूल्यों v23.xml:
त्रुटि: (2) माता-पिता को आइटम के लिए पुनर्प्राप्त करने में त्रुटि: कोई संसाधन नहीं मिला जो दिए गए नाम से मेल खाता हो 'Android: TextAppearance.Material.Widget.Button.Inverse'।
त्रुटि: (2) आइटम के लिए माता-पिता को प्राप्त करने में त्रुटि: कोई भी संसाधन नहीं मिला जो दिए गए नाम से मेल खाता हो 'Android: Widget.Material.Button.Colored'।
फ़ाइल के तहत -> परियोजना संरचना -> मॉड्यूल: एप्लिकेशन (बाएं स्तंभ) -> गुण टैब , मेरे पास निम्नलिखित संस्करण हैं:
- "संकलित एसडीके संस्करण": एंड्रॉइड 5.1 (एपीआई स्तर 22)
- "बिल्ड टूल संस्करण": 23.0.2
इसे ठीक करने के लिए मुझे क्या करना चाहिए?
मैंने पहले ही कोशिश की कि स्टैक ओवरफ्लो प्रश्न में क्या सुझाव दिया गया था appcompat-v7: 21.0.0 ': कोई संसाधन नहीं मिला जो दिए गए नाम से मेल खाता हो: attr' android: actionModeShareDrawable ' , लेकिन यह काम नहीं किया।
आपका संकलन एसडीके संस्करण समर्थन पुस्तकालय प्रमुख संस्करण से मेल खाना चाहिए।
यह आपकी समस्या का समाधान है।
आप इसे अपने
build.gradle
लिपियों में
build.gradle
फ़ाइल में आसानी से देख सकते हैं।
Fx: यदि आपका संकलन
compileSdkVersion
23 है, तो आपका संकलन पुस्तकालय 23 पर शुरू होना चाहिए।
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 340
versionName "3.4.0"
}
dependencies {
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:recyclerview-v7:23.0.1'
}
और हमेशा जांचें कि आपके Android Studoi में समर्थित API स्तर है। आप इसे अपने Android SDK में इस तरह से देख सकते हैं:
आपको 23 पर compileSdkVersion सेट करने की आवश्यकता है।
चूंकि एपीआई 23 एंड्रॉइड ने अपग्रेड किए गए अपाचे एचटीपी पैकेजों को हटा दिया है, इसलिए यदि आप उन्हें सर्वर अनुरोधों के लिए उपयोग करते हैं, तो आपको इस लिंक में बताए अनुसार
build.gradle
में
'org.apache.http.legacy'
org.apache.http.legacy
'org.apache.http.legacy'
उपयोग करना होगा।
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
...
//only if you use Apache packages
useLibrary 'org.apache.http.legacy'
}
आपको अपनी परियोजना को नवीनतम संस्करण के साथ संकलित करना चाहिए ताकि आपके एसडीके से अपडेट और इंस्टॉल हो सके।
अपने प्रोजेक्ट को
sync project with Gradle file
बटन के साथ
sync project with Gradle file
प्रोजेक्ट के साथ
sync project with Gradle file
करें।
आप मौजूदा संस्करण के साथ भी जारी रख सकते हैं, लेकिन इसे ठीक से स्थापित छवि की जाँच करें एपीआई 22 को इंगित करें जो ठीक से स्थापित है।
और जरूरत पड़ने पर अपने प्रोजेक्ट को सिंक करें।
यह मदद कर सकता है।
एक और समाधान: नेविगेट करने के लिए
\sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.x.x
7। ज़िप या winrar के साथ
.aar
फ़ाइल खोलें, Res फ़ोल्डर में
values-23
फ़ोल्डर निकालें और परिवर्तन सहेजें।
ऐसा इसलिए होता है क्योंकि अपडेट के बाद एंड्रॉइड स्टूडियो डिफ़ॉल्ट रूप से एपीआई संस्करण 23 का उपयोग करता है ।
निम्नलिखित ने मेरे लिए काम किया:
प्रोजेक्ट संरचना पृष्ठ पर जाने के लिए Ctrl + Shift + Alt + S दबाएँ। गुण टैब पर जाएं और निर्माण उपकरण क्षेत्र में 23.0.0 से 22.0.1 (या आप पहले जो उपयोग कर रहे थे उसके बराबर) को बदलकर अपनी परियोजना का पुनर्निर्माण करें।
यदि वह काम नहीं करता है, तो वर्गीकृत करें: ऐप और फिर
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
संपादित v7: 23.0.0 से v7: 22.2.1 जैसा कि ऊपर दिखाया गया है और सिंक सिंक है। यह निश्चित रूप से काम करेगा।
जैसा कि दूसरों ने पहले ही उल्लेख किया है कि आपके
compile sdk version
को आपके
support library's
प्रमुख संस्करण से मेल खाना चाहिए।
हालाँकि, यह
subprojects
लिए भी प्रासंगिक है, जो आपके पास होना चाहिए।
यदि आप ऐसा करते हैं, तो आप निम्न स्क्रिप्ट के साथ अपने
subprojects
संकलित एसडीके संस्करण सेट कर सकते हैं:
subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
इस स्क्रिप्ट को अपनी root
build.gradle
फ़ाइल में जोड़ें।
मुझे इसका हल मिल गया, जब मैंने sdk को अपडेट किया तो प्रॉब्लम शुरू हो गई, उसके बाद मैंने अलग बिल्डटूलवर्सन ('22 .0.1 ') का इस्तेमाल किया और मैं कंपाइल' com.android.support:appcompat-v7-23.0.0 ' जैसे अलग-अलग सपोर्ट लाइब्रेरी का इस्तेमाल कर रहा था। नीचे आपको इमेज में दिखा रहा हूँ
यह " android.widget.Material ..." की समस्या खड़ी कर रहा था, तब मैंने संकलन लाइब्रेरी के लिए उसी संस्करण का उपयोग किया जैसे संकलन 'com.android.support:appcompat-v7:22.0.1' और इसके संपन्न। (नीचे स्क्रीनशॉट में आपको दिखा रहा हूं)
मेरे मामले में यह Google-play-services का एक उच्चतर संस्करण था। मैंने उन्हें 7.0.0 (8.x नहीं) पर सेट किया और सब ठीक था।
मैं एपीआई 23 से 22 तक डाउनग्रेड करना चाहता था और मुझे यह त्रुटि मिली।
मुझे कंपाइल करने के लिए एक प्रोजेक्ट में
सभी
build.gradle
फ़ाइलों को बदलना पड़ा।
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.yourapp.app"
minSdkVersion 14
targetSdkVersion 22
}
...
dependencies {
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:support-v4:22.2.1'
compile 'com.android.support:design:22.2.1'
compile 'com.google.android.gms:play-services-gcm:10.0.1'
}
मॉड्यूल पर: एप्लिकेशन (ग्रेड)
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.namepack.nameappxxxxx"
minSdkVersion 16
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
परियोजना: nameAppXXXX (ग्रेडल)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
jcenter()
}
}
और उदाहरण के लिए AppCompatActivity की अपनी गतिविधि संपादित करें गतिविधि:
package com.namepack.nameappxxxxx;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
public class NameClass extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
}
यदि आप फोनगैप (क्रॉस-प्लेटफॉर्म) का उपयोग कर रहे हैं और ऊपर एक ही मुद्दा है, तो बस नीचे दिए गए कमांड का उपयोग करके एंड्रॉइड प्लेटफॉर्म को हटा दें।
फोनगैप मंच एंड्रॉयड हटा दें
और इसे फिर से जोड़ें।
phonegap प्लेटफॉर्म एंड्रॉइड जोड़ें
फिर मेरे लिए समस्या हल हो गई।
यदि आपने पिछले GooglePlayServices या AppCompatv7 संस्करण में लक्ष्य बदलने की कोशिश की है और यह काम नहीं करता है, तो जांचें कि क्या आपके पास कोई प्रोजेक्ट-लायब्रेरी निर्भरता है, यह प्रोजेक्ट इनमें से किसी भी लाइब्रेरी के नवीनतम संस्करण को लक्षित करेगा। यह मेरे साथ गूगल मैप्स यूटिल्स लाइब्रेरी प्रोजेक्ट के साथ हुआ:
बदलने के:
compile 'com.google.android.gms:play-services:+'
सेवा मेरे
compile 'com.google.android.gms:play-services:8.3.0'
तब आप API 22 को पूर्ण लक्ष्यीकरण जारी रख सकते हैं
यदि यह अभी भी संकलित नहीं करता है, तो कभी-कभी compileSdVersion API को 23 पर सेट करना और 22 को targetSdkVersion को उपयोगी बनाना है।
जब आप अपने एंड्रॉइड स्टूडियो को अपडेट करते हैं, तो यह डिफ़ॉल्ट रूप से एपीआई संस्करण 23 का उपयोग करता है, जो इसकी घटना का मुख्य कारण है। इसलिए,
सबसे पहले, build.gradle (मॉड्यूल: ऐप) में अपने AppCompat संस्करण की जाँच करें, अर्थात
यदि 23 में बदलने के बाद कोई त्रुटि होती है तो बस डाउनलोड करें
Compile Sdk Version to API 23, and Build Tools Version to 23.0.0
SDK प्रबंधक से। यदि पहले से डाउनलोड है तो:
1. Go to SDK Manager and
2. Under Project Structure, change *Compile SDK Version* to API 23, and *Build Tools Version* to 23.0.0
एसडीके प्रबंधक बटन पर क्लिक करें और संवाद खोलें।
एसडीके प्लेटफॉर्म पर क्लिक करें और जांचें कि एंड्रॉइड 6.0 डाउनलोड किया गया है या नहीं।
यदि नहीं, तो पहले डाउनलोड करें। डाउनलोड पूरा करने के बाद, लागू करें पर क्लिक करें ।
अब आपको सेटिंग से अपनी परियोजना में परिवर्तन लागू करने की आवश्यकता है। फिर सेटिंग खोलने के लिए Ctrl + Alt + Shift + S दबाएं
- सूची से एप्लिकेशन पर क्लिक करें।
- गुणों पर क्लिक करें
- अपने संकलन SDK संस्करण को API 23 में बदलें
- अपने निर्माण उपकरण संस्करण को 23.0.0 में बदलें
अपनी परियोजना के पुनर्निर्माण के लिए मत भूलना।
तब आपकी त्रुटि दूर हो जाएगी।
यह मुद्दा इसलिए उठाया गया है क्योंकि अब संकलन SDK संस्करण को Android समर्थन लाइब्रेरी के प्रमुख संस्करण से मेल खाना चाहिए।
मेरे मामले में मेरे पास
Android Support Library
संस्करण 23 है, इसलिए मुझे
Android SDK version 23
खिलाफ संकलन करना पड़ा, और मुझे इसे अपनी
build.gradle
फ़ाइल में बदलना पड़ा:
वैसे आप में से कुछ को एसडीके,
Android 6.0 (API 23)
को स्थापित करना होगा
और ग्रेडिंग फ़ाइलों के साथ सिंक प्रोजेक्ट को मत भूलना