歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

有關Android Java 中package 的問題

一般的情況下,package之後帶著包的路徑跟源碼的位置一致。例如:package com.hello.world 那對應的源代碼的路徑為:src/com/hello/world。但是有時候我們也可以將package 所帶的xxx.xxx.xxx 跟文件的路徑不一致。例如:package com.hello.worldtest , 在這種情況下,為了使apk能順利編譯通過,還得更改對應apk的AndroidManifest.xml文件中的 package="xxx.xxx.xxx"。

如下是具體的一個實例:

1.工程的具體目錄

[java]

  1. |-- AndroidManifest.xml  
  2. |-- assets  
  3. |-- bin  
  4. |   |-- classes  
  5. |   |   `-- com  
  6. |   |       `-- hello  
  7. |   |           `-- world  
  8. |   |               |-- QrdhelloworldActivity.class  
  9. |   |               |-- R$attr.class  
  10. |   |               |-- R.class  
  11. |   |               |-- R$drawable.class  
  12. |   |               |-- R$layout.class  
  13. |   |               `-- R$string.class  
  14. |   `-- res  
  15. |-- gen  
  16. |   `-- com  
  17. |       `-- hello  
  18. |           `-- world  
  19. |               `-- R.java  
  20. |-- proguard.cfg  
  21. |-- project.properties  
  22. |-- res  
  23. |   |-- drawable-hdpi  
  24. |   |   `-- ic_launcher.png  
  25. |   |-- drawable-ldpi  
  26. |   |   `-- ic_launcher.png  
  27. |   |-- drawable-mdpi  
  28. |   |   `-- ic_launcher.png  
  29. |   |-- layout  
  30. |   |   `-- main.xml  
  31. |   `-- values  
  32. |       `-- strings.xml  
  33. `-- src  
  34.     `-- com  
  35.         `-- hello  
  36.             `-- world  
  37.                 `-- QrdhelloworldActivity.java  

2. QrdhelloworldActivity.java 的內容 (注意:這裡的package com.hello.worldtest;)

[java]

  1. package com.hello.worldtest;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5.   
  6. public class QrdhelloworldActivity extends Activity {  
  7.     /** Called when the activity is first created. */  
  8.     @Override  
  9.     public void onCreate(Bundle savedInstanceState) {  
  10.         super.onCreate(savedInstanceState);  
  11.         setContentView(R.layout.main);  
  12.     }  
  13. };  
  14.   
  15. import android.app.Activity;  
  16. import android.os.Bundle;  
  17.   
  18. public class QrdhelloworldActivity extends Activity {  
  19.     /** Called when the activity is first created. */  
  20.     @Override  
  21.     public void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.main);  
  24.     }  
  25. }  
3.AndroidManifest.xml的內容(注意:package="com.hello.worldtest")

[java]

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.hello.world"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk android:minSdkVersion="10" />  
  8.   
  9.     <application  
  10.         android:icon="@drawable/ic_launcher"  
  11.         android:label="@string/app_name" >  
  12.         <activity  
  13.             android:label="@string/app_name"  
  14.             android:name=".QrdhelloworldActivity" >  
  15.             <intent-filter >  
  16.                 <action android:name="android.intent.action.MAIN" />  
  17.   
  18.                 <category android:name="android.intent.category.LAUNCHER" />  
  19.             </intent-filter>  
  20.         </activity>  
  21.     </application>  
  22.   
  23. </manifest>  
4.總結

package 之後的xxx.xxx.xxx 可以任意取,package 關鍵真正的作用是將編譯出來.class 二進制文件指定到具體的xxx.xxx.xxx目錄中,如果別的java源程序需要引用這些.class的時候,必須指定正確。例如:我們在應用上面的.class 的時候就不能package com.hello.world 而應該使用package com.hello.worldtest

Copyright © Linux教程網 All Rights Reserved