java.lang.IleglegalArgumentException: वैध वर्ग का नाम नहीं: एंड्रॉइड एनडीके जाव

Paul Asiimwe 08/22/2017. 6 answers, 9.039 views
android-ndk android-ndk jni adt

मैं विन्डोज़ ग्रहण पर एनडीके में एंड्रॉइड को कोड करना सीख रहा हूं .... सिल्वेन रबतौइल द्वारा ट्यूटोरियल बुक का पालन किया जा रहा है। तो रन में im | बाहरी उपकरण | बाहरी उपकरण विन्यास ... एक नया प्रोग्राम विन्यास बनाना।

Name: MyProject javah

स्थान: $ {env_var: JAVA_HOME} \ bin \ javah.exe

कार्य निर्देशिका: $ {workspace_loc: / MyProject / bin}

समस्या तर्क में आती है ... जब मैं तर्कों का प्रयास करता हूं: -d $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity जैसा कि यह पुस्तक में कहता है

जब मैं दौड़ता हूं तो मुझे मिलता है

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: –d 

जब मैं $ {workspace_loc: / MyProject / jni} com.myproject.MyActivity} आज़माता हूं

मुझे मिला

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: C:\Paul\Workspace\MyProject\jni 

अद्यतन: मैंने पहले -classpath रखा है और यह चल रहा है लेकिन com.myproject के लिए क्लास फ़ाइल नहीं मिल रहा है

1 Comments
Guilherme 08/31/2014
मजेदार, यह मेरे लिए काम नहीं करता है। मैं मैक में हूँ यह हल हो गया stackoverflow.com/questions/9200373/...

6 Answers


Paul Asiimwe 07/13/2013.

आगे के शोध के बाद .... मैंने किया।

मैं तर्क निर्धारित करता हूं

-d $ {workspace_loc: / MyProject / jni} -classpath सी: \ पॉल \ android-sdk-windows \ प्लेटफॉर्म \ android-17 \ android.jar; $ {workspace_loc: / MyProject / bin / classes} com.myproject.MainActivity


Julian 07/22/2014.

एंड्रॉइड एनडीके के बारे में उल्लिखित पुस्तक के साथ काम करते समय भी मैं इस समस्या पर कुछ समय बिताता हूं।

कृपया निम्नलिखित ध्यान दें: जावा com.myproject.MyActivity { } में नहीं लिखा गया है, बस com.myproject.MyActivity जैसे कुछ com.myproject.MyActivity

-classpath पैरामीटर अर्धविराम से -classpath कई पथ प्राप्त कर सकते हैं।

मेरे मामले में यह पैरामीटर काम किया:

Location:

$NO 

Working Directory:

$NO 

Arguments:

-d ${workspace_loc:/myproject/jni} -classpath ${workspace_loc:/myproject/bin/classes};"C:\Eclipse\sdk\platforms\android-18\android.jar" com.myproject.MyActivity 

(बीटीडब्ल्यू .: सही Adroid.jar फ़ाइल ग्रहण परियोजना के अंदर संदर्भित है।)


community wiki 12/20/2014.

मुझे आज भी एक ही समस्या का सामना करना पड़ रहा है, मुझे निम्नलिखित के रूप में एक कम कठिन तरीका मिला ...

  1. "स्थान" के रूप में आपके सिस्टम से जाव सेट करें
  2. "वर्किंग डायरेक्टरी" के रूप में प्रोजेक्ट की बिन / क्लास निर्देशिका सेट करें ( $NO
  3. "तर्क" के रूप में जेनी फ़ोल्डर को आउटपुट निर्देशिका के रूप में सेट करें और उस वर्ग को इंगित करें जिस पर आप javah ( -d "$ {workspace_loc: / HelloWorld / jni}" com.example.helloworld.MainActivity ) चलाएं

एनबी :: तीसरे चरण में आउटपुट के आस-पास डबल क्यूउट (") को न भूलें ( "$NO )

एक पूर्ण तस्वीर भी संलग्न है

एक ही तस्वीर में सभी 3 कदम


Saket 06/29/2014.

अच्छी तरह से मामले में ...

1-> गोटो (सीडी सी: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.7.0_60 \ bin)

2-> सी: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.7.0_60 \ bin> javah -jni -classpath F: \ Android_OpenGLES \ FibonacciNative \ bin \ classesर्थ-डी F: \ Android_OpenGLES \ FibonacciNative \ jni \ com.example.fibonaccinative। FibLib

पर्यावरण चर बनाने / उपयोग किए बिना ...


CoDe 08/12/2015.

मैंने सफलतापूर्वक प्रयास करने के बाद

javah com.sense.kios.Calculation 

Note: Include package name.

अगर जवा को कमांड के रूप में नहीं मिला और आपको मिल रहा है

The program 'javah' can be found in the following packages:
 * gcj-4.6-jdk
 * gcj-4.7-jdk
 * openjdk-7-jdk
 * openjdk-6-jdk
Try: sudo apt-get install  

jdk पथ का सीधा पथ उपयोग करें, मेरे मामले में यह /usr/lib/jvm/jdk1.8.0/bin/javah


Dhiraj Himani 07/29/2017.

हां यह अधिक सटीक होगा

-d ${workspace_loc:/MyProject/jni} -classpath ${env_var:ANDROID_SDK_HOME}\platforms\android-16\android.jar;${workspace_loc:/MyProject/bin/classes} com.myproject.MyActivity 

Related questions

Hot questions

Language

Popular Tags