2011-11-12 12 views
19

मेरे पास कई संकुल के साथ एक एंड्रॉइड प्रोजेक्ट है। इस मामले में संकुल की संरचना com है। WAPP.SetLocation वह पैकेज है जिसमें वह गतिविधि शामिल है जिसे मैं चलाने के लिए चाहता हूं।एंड्रॉइड त्रुटि "स्पष्ट गतिविधि वर्ग खोजने में असमर्थ"

मेरी प्रकट में, com.WAPP आधार पैकेज माना जाता है:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.WAPP" 
     android:versionCode="1" 
     android:versionName="1.0"> 

मेरे गतिविधियों घोषित किये गए हैं मेरी प्रकट रूप में:

<activity android:name=".mainScreenActivity"></activity> 
<activity android:name=".SetLocation.setLocationActivity"></activity> 

mainScreen गतिविधि, ठीक प्रदर्शित करता है के बाद से यह अंदर है com.WAPP पैकेज। लेकिन जब मैं setLocationActivity चलाने की कोशिश करता हूं, तो मुझे स्पष्ट वर्ग त्रुटि खोजने में असमर्थ लगता है।

startActivity(new Intent(MyActivity.this, setLocationActivity.class)); 

और प्रारंभिक निकालने का प्रयास करें:

Intent i = new Intent(); 
      i.setClassName("com.WAPP.SetLocation", 
          "com.WAPP.SetLocation.setLocationActivity"); 
      startActivity(i); 

उत्तर

1

अगर मैं गलत नहीं हूँ, i.setClassName("com.WAPP.SetLocation","com.WAPP.SetLocation.setLocationActivity");i.setClassName(getBaseContext(),"setLocationActivity");Reference

इसके अलावा इस वाक्य रचना की कोशिश होनी चाहिए: यहाँ कैसे मैं आशय पैरामीटर है डॉट से:

<activity android:name=".SetLocation.setLocationActivity"></activity> 
24

पहला पैरामीटर एप्लिकेशन पैकेज पैकेज नहीं है जहां गतिविधि है।

आप इस तरह की गतिविधि का आह्वान कर सकते हैं।

Intent i = new Intent(); 
i.setClassName("com.WAPP", 
       "com.WAPP.SetLocation.setLocationActivity"); 
startActivity(i); 

यह पसंद किया जाता है क्योंकि SYLARRR ने एंड्रॉइड को आपके लिए स्वचालित रूप से समझने का सुझाव दिया है। इसलिए के रूप में कॉल ..

startActivity(new Intent(this, setLocationActivity.class)); 

यह पैकेज का नाम सब कम मामलों और CamelCased के रूप में वर्ग के नाम के लिए जावा मानकों के अनुसार अनुशंसा की जाती है।

2

इस तरह से इसे अभी करें:

Intent intent = new Intent(); 
intent.setComponent(
     new ComponentName("com.WAPP", "com.WAPP.SetLocation.setLocationActivity")); 
startActivity(i); 
12

नई गतिविधि नहीं MainActivity (आप यहां से कहते हैं?) के साथ एक ही पैकेट में, प्रकट

<activity android:name="com.WAPP.SetLocation.setLocationActivity"></activity> 

और में पर घोषित की कोशिश करते हैं कॉलर

Intent intent = new Intent(this, setLocationActivity.class); 
startActivity(intent); 

आशा है कि इससे मदद मिलती है!

7

ऊपर उत्तर देने के लिए अतिरिक्त में यह सुनिश्चित करें कि अपनी गतिविधियों अपने मेनिफ़ेस्ट में प्रकट

<application 
    android:allowBackup="true" 
    android:label="@string/app_name" 
    android:supportsRtl="true"> 

    <activity android:name=".mainScreenActivity"></activity> 
    <activity android:name=".SetLocation.setLocationActivity"></activity> 

</application> 
0

में आवेदन के अंदर घोषित कर रहे हैं आप के रूप में यह घोषित .SetLoction.setLocationActivity लेकिन पैकेज का नाम com.WAPP है .SetLocation इसलिए आपको इसे फिर से उपसर्ग करने की आवश्यकता है।

Intent i = new Intent(); 
      i.setClassName("com.WAPP.SetLocation", 
          "com.WAPP.SetLocation.SetLocation.setLocationActivity"); 
      startActivity(i); 
संबंधित मुद्दे