Android-sdk स्थापित करने में विफल: "java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema"


167

एंड्रॉइड sdk टूल इंस्टॉल करते समय निम्नलिखित त्रुटि होती है:

java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema

ऐसा क्यों हो रहा है और इसे कैसे ठीक किया जा सकता है?

डिबग आउटपुट:

$ java --version
java 9
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
$ brew cask install android-sdk
==> Caveats
We will install android-sdk-tools, platform-tools, and build-tools for you.
You can control android sdk packages via the sdkmanager command.
You may want to add to your profile:
  'export ANDROID_SDK_ROOT=/usr/local/share/android-sdk'

This operation may take up to 10 minutes depending on your internet connection.
Please, be patient.

==> Satisfying dependencies
==> Downloading https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip
Already downloaded: /Users/tomasnovella/Library/Caches/Homebrew/Cask/android-sdk--3859397,26.0.1.zip
==> Verifying checksum for Cask android-sdk
==> Installing Cask android-sdk
==> Exception in thread "main"
==> java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
==>     at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
==>     at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
==>     at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
==>     at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)
==>     at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
==> Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
==>     at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
==>     at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
==>     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
==>     ... 5 more
Error: Command failed to execute!

==> Failed command:
/usr/local/Caskroom/android-sdk/3859397,26.0.1/tools/bin/sdkmanager tools platform-tools build-tools;26.0.1

==> Standard Output of failed command:


==> Standard Error of failed command:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)

मैं मानता हूं कि यह प्रश्न "इस त्रुटि का कारण क्या है?" जवाब यह है कि यह javax.xml कक्षाएं नहीं पा सकता है।
स्टीव स्मिथ

28
वास्तव में यह सवाल java9 होने पर एंड्रॉइड sdk को स्थापित करने के साथ एक कानूनी समस्या पूछता है
jontro

17
मुझे यह समस्या है, और मैंने अपने त्रुटि संदेश की पहली पंक्ति को Google में कॉपी / पेस्ट कर दिया है, और यह प्रश्न पहली हिट थी जो सामने आई। इतना ही नहीं, नीचे दिए गए उत्तरों में से एक ने इसे हल किया। इसे पूरी तरह से बंद नहीं किया जाना चाहिए: कोई फर्क नहीं पड़ता कि प्रश्नों के नियम क्या हैं, यह सवाल साइट के पूरे उद्देश्य को पूरी तरह से पूरा करता है।
ले मोट ज्यूस

1
हटाएं कुछ भी पुराने जावा 8 से से/Library/Java/JavaVirtualMachines
दिमित्रिस

2
समस्या उबटन 18.04 पर जावा 8 और जावा 11 के साथ संकुल का उपयोग करके होती है openjdk-8-jdkऔर openjdk-11-jdk। क्या किसी को पता है कि एनडीके में क्या करना है javax/xml/bind/annotation/XmlSchemaया कैसे बचना javax/xml/bind/annotation/XmlSchemaहै?
jww

जवाबों:


138

मुझे आज सुबह भी ऐसी ही समस्या थी (यूनिटी 3 डी का उपयोग करके एंड्रॉइड के लिए निर्माण करने की कोशिश)। मैंने JDK9 की स्थापना रद्द की और Java SE विकास किट 8u144 की स्थापना समाप्त की । उम्मीद है की यह मदद करेगा।

  1. brew cask uninstall java # java9 की स्थापना रद्द करें
  2. brew tap homebrew/cask-versions
  3. brew cask install java8 # जावा स्थापित करें
  4. touch ~/.android/repositories.cfg # इस फ़ाइल के बिना, त्रुटि अगले चरण पर होगी
  5. brew cask install android-sdk

2
विंडोज़ 10 पर त्रुटि मिली, यह कोशिश की, अभी भी काम नहीं करता है। कोई सुझाव?
वेदवार्त १

3
महान - इसने मेरे लिए एंड्रॉइड स्टूडियो में एक स्पंदन ऐप बनाने का काम किया। धन्यवाद!
दर्रागह हूबहू

20
इसने काम करना बंद कर दिया, काढ़ा पीना java8 काम नहीं करता है।
kdy

4
सही आदेश अब प्रतीत होता हैbrew cask install homebrew/cask-versions/java8
caesarsol

21
brew cask install homebrew/cask-versions/adoptopenjdk8काम करने लगता है
guruz

82

इस त्रुटि को हल करने के लिए, आप अपने जावा संस्करण को डाउनग्रेड कर सकते हैं।

या अपने टर्मिनल पर निम्न विकल्प निर्यात करता है:

लिनक्स / मैक:

export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

विंडोज :

set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

और यह स्थायी रूप से बचाने के लिए आप निर्यात कर सकते हैं JAVA_OPTSलिनक्स (पर अपनी प्रोफ़ाइल फ़ाइल में .zshrc, .bashrcऔर आदि) या Windows पर स्थायी रूप से वातावरण चर के रूप में जोड़ें।


ps। यह जावा 11+ के लिए काम नहीं करता है, जिसमें जावा ईई मॉड्यूल नहीं है। इस विकल्प के लिए एक अच्छा विचार है, अपने जावा संस्करण को डाउनग्रेड करें या फ़्लटर अपडेट की प्रतीक्षा करें

रेफरी: जेडीके 11: जावा ईई मॉड्यूल के लिए सड़क का अंत


6
इसने मेरे लिए उबंटू में 18.04 w / OpenJDK 10.0.2
rastating

3
जावा संस्करण "10.0.1" 2018-04-17 के साथ macOS Mojave (10.14.2) पर मेरे लिए काम किया।
Subfuzion

4
MacOS Mojave (10.14.2) पर मेरे लिए एक नई त्रुटि बनाई गई: बूट परत java.lang.module.FindException के आरंभ के दौरान त्रुटि हुई: मॉड्यूल java.se.ee नहीं मिला
Randy

2
मैंने १. getting.०_१ ९ १ भी कोशिश की, लेकिन अभी भी हो रही है: त्रुटि: मुख्य वर्ग java.se.ee को ढूँढ या लोड नहीं कर सकी
रैंडी

1
यह विकल्प जावा 8 के लिए आवश्यक नहीं है और जावा 11 के लिए काम नहीं करता है, जिसमें जावा ईई मॉड्यूल नहीं है।
वलदेसि

64
set JAVA_OPTS=-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee

इसने मेरे लिए विंडोज पर समस्या को ठीक कर दिया।

स्रोत 1 , स्रोत 2


2
इसके अलावा ubuntu 16.04 (उपयोग exportनहीं set) पर इसका इस्तेमाल किया और इसने समस्या का समाधान किया।
बेंजामिन कोलन

प्रतिभा। बहुत बहुत धन्यवाद। सोचा मैं अपने JVM बदलना होगा वाला था
गुच्छे

1
जावा 10 के साथ विंडोज 10 पर एक आकर्षण की तरह काम किया
pabz

4
दुर्भाग्य से ऐसा लगता है कि पूरी तरह से जावा 11 में हटा दिया गया है
एलास्टेयर माव

export JAVA_OPTS = '-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'उबंटू 18.04 पर काम कर रहा है
e2-e4

25

यदि आप अपना जावा संस्करण (I नहीं) बदलना चाहते हैं, तो आप अपने शेल में संस्करण को अस्थायी रूप से बदल सकते हैं:

प्रथम रन

/usr/libexec/java_home -V

यदि आपने इसे स्थापित किया है तो एक प्रमुख संस्करण चुनें, अन्यथा इसे पहले स्थापित करें:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

अब आप sdkmanager चला सकते हैं।


2
$ /usr/libexec/java_home -Vदेता है bash: /usr/libexec/java_home: No such file or directoryapt-file search /usr/libexec/java_homeकुछ भी नहीं देता है।
टीनो

क्या आपके पास $ JAVA_HOME सही ढंग से सेट है? भागो: echo "export JAVA_HOME=`/usr/libexec/java_home`" >> ~/.bashrc(या यदि आप प्रोफ़ाइल का उपयोग करते हैं तो प्रोफ़ाइल) - पुनः लोड करें:. ~/.bashrc
सारा एक

कोई /usr/libexecभी नहीं है । क्या आप MacOS पर हैं? (मैं उबंटू / लिनक्स और उबंटू / विंडोज पर हूं)
टीनो

मैं मैक का उपयोग कर रहा हूँ। आपका Java_home कहाँ है?
सारा सारा

21

Mac / Linux पर निम्न कमांड का उपयोग करें:

export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

जेडीके 9 और 10 दोनों के लिए काम करता है, बिना किसी स्क्रिप्ट (sdkmanager, avdmanager) को पैच किए बिना

जावा 11 के लिए देखें: https://stackoverflow.com/a/51644855/798165


1
धन्यवाद! जब आपने jdk 9
Jorge Valvert

15

मुझे JDK 10 (या 9) की स्थापना रद्द किए बिना मेरे लिए काम करने वाले दो उत्तर मिले, जिनकी मुझे आवश्यकता है create-react-app। JDK 9 और 10 दोनों ही एंड्रॉइड-एसडीके के साथ असंगत हैं!


Siu चिंग पोंग -आसुका केंजी-sdkmanager इस लाइन की जगह, स्क्रिप्ट को संशोधित करने का सुझाव देता है :

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'  

साथ में:

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

ध्यान रखें कि sdkmanager को अपडेट करते समय यह मॉड अधिलेखित हो जाएगा।
अधिक जानकारी के लिए उसकी पोस्ट देखें, और वह जिस पर लिंक करे।
यह समाधान भी इस गिथुब मुद्दे धागे में वर्णित समाधानों में से एक था ।


जर्मन की पोस्ट संघर्ष के स्रोत को इंगित करती है, और फिक्स को प्रस्तुत करती है जिसे अपडेट द्वारा अधिलेखित नहीं किया जाएगा।
वह /Library/Java/JavaVirtualMachines/Info.plistअपने सिस्टम पर निवास करने वाले जावा के उच्चतम संस्करण की तलाश करने वाली स्क्रिप्ट से इसका नाम बदलने के साधन के रूप में नाम बदलने का सुझाव देता है। इस तरह, JDK 8 को डिफ़ॉल्ट के रूप में लौटाया जाता है।
स्पष्ट रूप से JDK 10 का जिक्र करते हुए, या $JAVA_HOMEजब भी जरूरत हो, आप डिफ़ॉल्ट के बजाय, JDK 10 का उपयोग कर सकते हैं।
विवरण उसके पोस्ट में हैं।


1
पूरी तरह से काम किया, सबसे अच्छा समाधान IMHO क्योंकि यह आपको जावा डाउनग्रेड करने के लिए मजबूर नहीं करता
4

किसी तरह, एओ के साथ बहुत प्रयोग करने के बाद। एंड्रॉइड स्टूडियो, यह मुद्दा गायब हो गया और नई त्रुटि थी Could not find or load main class java.se.ee- DEFAULT_JVM_OPTS को फिर से निर्धारित करना और यह पिछला मुद्दा चला गया ..
4levels

3
दुर्भाग्य से, यह अब काम नहीं करता है। परिणाम यह है: बूट परत java.lang.module.FindException के आरंभीकरण के दौरान त्रुटि हुई: मॉड्यूल java.se.ee नहीं मिला
ऑस्कर

1
Upvoted stackoverflow.com/a/49630166/5411817 को डाउनग्रेड किए बिना jdk-11 और jdk1.8 स्थापित करने के लिए सही समाधान के लिए
harrisjb

15

आपको अपनी प्रोफ़ाइल में निम्नलिखित जोड़ने की आवश्यकता है (MacOS पर काम करता है):

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

कुछ भी पैच करने की आवश्यकता नहीं है।


15

बस JDK संस्करण 8 को स्थापित करें और इसे डिफ़ॉल्ट रूप से चुनें:

sudo update-alternatives --config java

11

अपडेट 2019-10:

जैसा कि इश्यू ट्रैकर में कहा गया है , Google एक नए एंड्रॉइड एसडीके कमांड-लाइन टूल्स पर काम कर रहा है रिलीज़ जो वर्तमान जेवीएम (9, 10, 11+) पर चलता है और अपग्रेडेड जेएसीबी ईई मॉड्यूल पर निर्भर नहीं करता है!

आप एंड्रॉइड स्टूडियो के अंदर या Google सर्वर से मैन्युअल रूप से डाउनलोड करके नए एंड्रॉइड एसडीके कमांड-लाइन टूल्स डाउनलोड और उपयोग कर सकते हैं:

नवीनतम संस्करणों के लिए repository.xml के अंदर के URL की जाँच करें ।

यदि आप मैन्युअल रूप से कमांड लाइन टूल्स को अनपैक करते हैं, तो उन्हें अपने $ANDROID_HOME(जैसे $ANDROID_HOME/cmdline-tools/...) सबफ़ोल्डर में रखने का ध्यान रखें ।


1
जावा 9+ का उपयोग करते समय, यह अभी से जवाब होना चाहिए!
लुइगी मेंडोज़ा

9

अजीब तरह से Java9 android-sdk के साथ संगत नहीं है

$ avdmanager
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:213)
    at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:200)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 5 more

आसान संदर्भ के लिए सभी कमांडों को एक में मिलाएं:

$ sudo rm -fr /Library/Java/JavaVirtualMachines/jdk-9*.jdk/
$ sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
$ sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane

$ /usr/libexec/java_home -V
Unable to find any JVMs matching version "(null)".
Matching Java Virtual Machines (0):
Default Java Virtual Machines (0):
No Java runtime present, try --request to install

$ brew tap caskroom/versions
$ brew cask install java8
$ touch ~/.android/repositories.cfg
$ brew cask install android-sdk
$ echo 'export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"' >> ~/.bash_profile
$ java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
$ avdmanager

Usage:
      avdmanager [global options] [action] [action options]
      Global options:
  -s --silent     : Silent mode, shows errors only.
  -v --verbose    : Verbose mode, shows errors, warnings and all messages.
     --clear-cache: Clear the SDK Manager repository manifest cache.
  -h --help       : Help on a specific command.

Valid actions are composed of a verb and an optional direct object:
-   list              : Lists existing targets or virtual devices.
-   list avd          : Lists existing Android Virtual Devices.
-   list target       : Lists existing targets.
-   list device       : Lists existing devices.
- create avd          : Creates a new Android Virtual Device.
-   move avd          : Moves or renames an Android Virtual Device.
- delete avd          : Deletes an Android Virtual Device.

8

चूंकि Java 11 ने JavaEE को हटा दिया है इसलिए आपको कुछ जार डाउनलोड करने और क्लासपैथ में जोड़ने की आवश्यकता होगी:

JAXB: https://javaee.github.io/jaxb-v2/

JAF: https://www.oracle.com/technetwork/articles/java/index-135046.html

फिर sdkmanager.bat संपादित करें ताकि CLASSPATH सेट करें ... ... के साथ समाप्त होता है ?% CLASSPATH बंद करें

JAXB और JAF को शामिल करने के लिए CLASSPATH सेट करें:

set CLASSPATH=jaxb-core.jar;jaxb-impl.jar;jaxb-api.jar;activation.jar

फिर sdkmanager.bat काम करेगा।


यह काम करता है, लेकिन मुझे यह चेतावनी मिलती है: चेतावनी: com.sun.xml.bind.v2.runtime.reflect.opt.Injector (फ़ाइल: / F: / android_ddk / java / jaxb-ri / lib / jaxb द्वारा अवैध चिंतनशील पहुंच। -impl.jar) विधि java.lang.ClassLoader.defineClass (java.lang.String, बाइट [], int, int)
एंडीएमसी

हां, ऐसा लग रहा है कि जावा बाईपास क्लास सुरक्षा के लिए प्रतिबिंब का उपयोग करने की खराब प्रोग्रामिंग प्रथा के खिलाफ चेतावनी देना शुरू कर रहा है, जिसे JAXB उपयोग करता है (ओरेकल अपने स्वयं के नियमों को तोड़ते हुए;)
पीटर क्वैरिंग

4

मैं दौड़ते समय एक ही मुद्दे में भाग गया:

$ /Users/<username>/Library/Android/sdk/tools/bin/sdkmanager "platforms;android-28" "build-tools;28.0.3"_

मैंने इसे हल किया

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home    

$ ls /Library/Java/JavaVirtualMachines/

jdk-11.0.1.jdk      
jdk1.8.0_202.jdk

1.8 का उपयोग करने के लिए जावा बदलें

$ export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home'

फिर वही आदेश ठीक चलता है

$ /Users/<username>/Library/Android/sdk/tools/bin/sdkmanager "platforms;android-28" "build-tools;28.0.3"

यह सबसे अच्छा मामला है। यदि आप पहले से ही JAVA_OPTS निर्यात करते हैं। इस उत्तर से चरण करने से पहले कृपया इसे हटा दें।
स्वॉर्ड जेसन

4

मैंने उसी समस्या का सामना किया। हालांकि मैं थोड़ा बैकडेटेड डेवलपर हूं (फिर भी विंडोज़ का उपयोग करके विकसित करना है: P)

खिड़कियों पर इस समस्या को हल करने के लिए :

चरण 1: jdk 8 स्थापित करें यदि इसे स्थापित नहीं किया गया था (jdk 9 या 11 काम नहीं करता है, लेकिन आप उन्हें अन्य देव उपयोगों में उपयोग करने के लिए स्थापित कर सकते हैं)।

चॉकलेट का उपयोग करते हुए बहुत सरल:

चोको स्थापित jdk8

(अगर चॉकलेट का उपयोग करके स्थापित किया गया है, तो चरण 2 और 3 छोड़ें)

चरण 2: पर्यावरण चर सेटिंग्स पर जाएं और JAVA_HOME TO jdk 8 की स्थापना निर्देशिका को सेट करें।

JAVA_HOME

चरण 3: पथ चर पर जाएं और jdk 8 की बिन निर्देशिका जोड़ें और इसे शीर्ष पर ले जाएं।

Path_varriable

चरण 4: किसी भी खुले टर्मिनल सत्र को बंद करें और एक नया सत्र पुनः आरंभ करें

वैकल्पिक चरण 5: टर्मिनल रन में अपने उद्देश्य पर निर्भर करता है (पथ में sdkmanager जोड़ने की जरूरत हो सकती है या बस निर्देशिका में नेविगेट कर सकते हैं):

sdkmanager - अपडेट

बस इतना ही! : ओ स्पंदन का मजा लो! : डी


1
शीर्ष उत्तर के साथ इसने मेरे लिए विंडोज़ 10 पर काम किया!
मउरीआई

THANKSSSSSSSSSSSSSSSS
राघव जोशी

2

विंडोज़ मशीन के लिए JDK की स्थापना रद्द करें यदि इसके 1.8.172 से अधिक हो। JDK 1.8.172 स्थापित करें

मैं जावा 10 के साथ विंडोज़ 10 में एक ही मुद्दे का सामना कर रहा था। मैंने जावा 10 को अनइंस्टॉल कर दिया और जावा 8 को मेरे लिए ठीक काम कर रहा है ...


2

लिनक्स उपयोगकर्ताओं के लिए (मैं एक डेबियन डिस्ट्रो, काली का उपयोग कर रहा हूं) यहां बताया गया है कि मैंने अपना कैसे हल किया।

यदि आपके पास पहले से ही jdk-8 नहीं है, तो आप इसे oracle की साइट पर प्राप्त करना चाहते हैं

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

मुझे jdk-8u191-linux-x64.tar.gz मिला

चरण 1 - जावा मूव इनस्टॉल करना और इसे उपयुक्त स्थान पर अनपैक करना

$ mv jdk-8u191-linux-x64.tar.gz /suitablelocation/
$ tar -xzvf /suitablelocation/jdk-8u191-linux-x64.tar.gz

आपको jdk1.8.0_191 की तरह एक अनज़िप्ड फोल्डर मिलना चाहिए। अंतरिक्ष को संरक्षित करने के लिए आप बाद में टारबॉल को हटा सकते हैं

चरण 2 - डिफ़ॉल्ट जावा स्थान के लिए विकल्प स्थापित करना

$ update-alternatives --install /usr/bin/java java /suitablelocation/jdk1.8.0_191/bin/java 1
$ update-alternatives --install /usr/bin/javac javac /suitablelocation/jdk1.8.0_191/bin/javac 1

चरण 3 - डिफ़ॉल्ट के रूप में अपने विकल्पों का चयन करना

$ update-alternatives --set java /suitablelocation/jdk1.8.0_191/bin/java
$ update-alternatives --set javac /suitablelocation/jdk1.8.0_191/bin/javac

चरण 4 - डिफ़ॉल्ट जावा संस्करण की पुष्टि करना

$ java -version

टिप्पणियाँ

  1. यहां मूल लेख में: https://forums.kali.org/showthread.php?41-Installing-Java-on-Kali-Linux , mozilla का डिफ़ॉल्ट प्लगइन भी सेट किया गया था। मुझे लगता है कि हम वास्तव में प्लगइन्स की जरूरत नहीं है क्योंकि हम बस Android के लिए विकसित करने की कोशिश कर रहे हैं।
  2. जैसा कि @ spassvogel के उत्तर में, आपको अपनी ~ / .android निर्देशिका में एक @ repositories.cfg फ़ाइल भी रखनी चाहिए क्योंकि उपकरण रेपो सूचियों को अद्यतन करने के लिए यह आवश्यक है।
  3. कुछ चीजों को इधर-उधर करने से रूट अथॉरिटी की जरूरत पड़ सकती है। सूद का प्रयोग समझदारी से करें।
  4. Sdkmanager उपयोग के लिए, आधिकारिक गाइड देखें: https://developer.android.com/studio/command-line/skkkager

1

भागो java -versionऔरjavac -versionकमांड लाइन में कमांड करें ताकि यह सुनिश्चित हो सके कि वे एक ही JDK से आते हैं (जैसे: संस्करण 1.8.0_181)

यदि नहीं, तो आपको PATHचर को संशोधित करना होगा ताकि यह केवल एक ही JDK को इंगित करे। यदि आप सुनिश्चित नहीं हैं कि कैसे करें, तो जावा 8 को छोड़कर अन्य सभी जावा इंस्टॉलेशन को अनइंस्टॉल करें (विंडोज में प्रोग्राम जोड़ें / निकालें)। आज के लिए, एकता और Android दोनों अनुशंसा करते हैं कि आप JDK 8 का उपयोग करें।

जावा 8 के साथ, java.se.eeमॉड्यूल को निर्यात करना आवश्यक नहीं है जैसा कि कुछ अन्य उत्तरों में दिखाया गया है। आप अपने द्वारा सेट किए गए किसी भी JAVA_OPTSया अन्य पर्यावरण चर को भी हटा सकते हैं ।


1

मैंने हाल ही में JDK के उच्च संस्करण की स्थापना रद्द करके और JDK 8 स्थापित करके इस समस्या को हल किया था। JDK को स्थापित करने के बाद आपको रास्ता देने की आवश्यकता है। फिर आपको "C: \ Users \ Milan Adhikari \ AppData \ Local \ Android \ Sdk \ Tools" में कमांड प्रॉम्प्ट खोलने की आवश्यकता है और "sdkmanager --update" चलाएं, जो आपके sdk को अपडेट करेगा और फिर "flutter doctor" को चलाने की आवश्यकता है। cmd में -android-लाइसेंस "और सभी लाइसेंस स्वीकार करते हैं।
अब आपकी समस्या हल होनी चाहिए।


1

मेरे मामले में, मुझे दोनों JDK 8 (ubuntu के तहत Qt में AVD और SDK प्रबंधक का उपयोग करने की कोशिश) और 11 विभिन्न उपकरणों के लिए चाहिए। संस्करण 11 को हटाना एक विकल्प नहीं है।

'JAVA_OPTS' समाधानों ने कुछ नहीं किया। मुझे वास्तव में निर्यात JAVA_HOME पसंद नहीं है, क्योंकि यह आपको एक ही शेल (जैसे Qt) से इन उपकरणों को कॉल करने के लिए बाध्य कर सकता है, या आपको यह स्थायी बनाने के लिए मजबूर कर सकता है, जो सुविधाजनक नहीं है।

तो मेरे लिए समाधान काफी सरल है। इस तरह की चीज़ को ~ / Android / tools / bin / sdkmanager और ~ / Android / tools / bin / avdmanager की दूसरी पंक्ति में जोड़ें:

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

(या जो भी रास्ता आपके रेव 8 jdk के लिए है)।

इसके साथ, ये कमांड लाइन उपकरण एक स्टैंड अलोन मोड में काम करते हैं, वे तब भी काम करते हैं जब अन्य उपकरण जैसे क्यूटी, और जेडडी 11 को कॉल किया जाता है, अभी भी दूसरों के लिए सिस्टम डिफ़ॉल्ट है। लिबास आदि को मिलाने की जरूरत नहीं ...

केवल नकारात्मक पक्ष यह है कि इन कमांड लाइन टूल का कोई भी अपडेट इन संशोधनों को मिटा देगा, जिसे आपको वापस रखना होगा।


ऊपर! धन्यवाद!
फन्डर

0

अपने जावा संस्करण को डाउनग्रेड करें। जो भी सिस्टम या ide है।

सुनिश्चित करें कि जावा संस्करण 8 से अधिक नहीं है

मेरे मामले में। मैं ide java verion को बदलता हूं। यह मेरे मुद्दे को हल करता है। यहां छवि विवरण दर्ज करें


0

जब आपका एंड्रॉइड स्टुयो / jre जावा के किसी भिन्न संस्करण का उपयोग करता है, तो आपको यह त्रुटि प्राप्त होगी। इसे हल करने के लिए, बस अपने JAVA_HOME पर Android स्टूडियो / jre सेट करें। और अपने खुद के जावा की स्थापना रद्द करें।


0

मेरे लिए मैं जावा संस्करण 8 स्थापित करता हूं और "JDK लोकेशन" में जावा संस्करण का चयन करता हूं: यहां छवि विवरण दर्ज करें


0

अपनी परिस्थिति के लिए, मैं कई जावा संस्करणों का प्रबंधन करने के लिए sdkman का उपयोग कर रहा हूं। मैंने डिफ़ॉल्ट जावा संस्करण को 13 पर सेट किया है। संस्करण 8 स्थापित करें और अब यह ठीक काम कर रहा है।


0

सबसे अच्छा तरीका है नीचे कमांड का उपयोग करना

   $ wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
   $ unzip \platform-tools-latest-linux.zip
   $ sudo cp platform-tools/adb /usr/bin/adb
   $ sudo cp platform-tools/fastboot /usr/bin/fastboot

अब सत्यापित करें कि यह अद्यतन किया गया है एडीबी संस्करण चलाएं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.