歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 有關Android Java 中package 的問題

有關Android Java 中package 的問題

日期:2017/3/1 10:39:16   编辑:Linux編程
一般的情況下,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. import android.app.Activity;
  3. import android.os.Bundle;
  4. public class QrdhelloworldActivity extends Activity {
  5. /** Called when the activity is first created. */
  6. @Override
  7. public void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.main);
  10. }
  11. };
  12. import android.app.Activity;
  13. import android.os.Bundle;
  14. public class QrdhelloworldActivity extends Activity {
  15. /** Called when the activity is first created. */
  16. @Override
  17. public void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.main);
  20. }
  21. }
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. <uses-sdk android:minSdkVersion="10" />
  7. <application
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name" >
  10. <activity
  11. android:label="@string/app_name"
  12. android:name=".QrdhelloworldActivity" >
  13. <intent-filter >
  14. <action android:name="android.intent.action.MAIN" />
  15. <category android:name="android.intent.category.LAUNCHER" />
  16. </intent-filter>
  17. </activity>
  18. </application>
  19. </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