如何获取源类文件的包名称中的Android?(How to Get Package Name of

2019-07-19 22:35发布

我使用的只有一个项目到端口精简版和完整版的,我刚更新的清单文件包名。

我的项目结构是这样的

我的应用程序
| _src
| _com.example.myapp
| _MyClass.java

和我的清单包名称是不同的。

包= “com.example.myapplite”

我使用的一个库项目中,我想包我使用MyApp的类名。

我已经使用这个

        System.out.println("Package Name " + context.getPackageName());

但它给我一个清单文件包名称值即。 com.example.myapplite

我想MyClass.java包名。 即。 com.example.myapp

另外我知道这个

 MyClass mClass = new MyClass();
 Package pack = mClass.getClass().getPackage();

但是因为我用下面的方法来获取类文件在我的图书馆项目,我不能用这种方法

Class c = Class.forName("package_name.MyClass");

如何获得MyClass.java文件的包名编程?

Answer 1:

可能是有益的

package org.kodejava.example.lang;
import java.util.Date;

public class ObtainingPackageName {
public static void main(String[] args) {
    //
    // Create an instance of Date class, and then obtain the class package
    // name.
    //
    Date date = new Date();
    Package pack = date.getClass().getPackage();
    String packageName = pack.getName();
    System.out.println("Package Name = " + packageName);

    //
    // Create an insatnce of our class and again get its package name
    //
    ObtainingPackageName o = new ObtainingPackageName();
    packageName = o.getClass().getPackage().getName();
    System.out.println("Package Name = " + packageName);
   }
} 


Answer 2:

试试这个,

    try {
        Class c = Class.forName("package_name.MyClass");

        Object o = c.newInstance();

        Package p = o.getClass().getPackage();

        System.out.println("Package Name :: " + p.getName());

    } catch (ClassNotFoundException e) {            
        e.printStackTrace();
    } catch (InstantiationException e) {            
        e.printStackTrace();
    } catch (IllegalAccessException e) {            
        e.printStackTrace();
    }


Answer 3:

String packageName = this.getClass().getPackage().getName();

肯定会工作。



Answer 4:

一些类的简单例子NotificationListener

Timber.d(NotificationListener.class.getPackage().getName());
Timber.d(NotificationListener.class.getSimpleName());
Timber.d(NotificationListener.class.getName());

输出:

D/PermissionsUtil: com.example.receivers
D/PermissionsUtil: NotificationListener
D/PermissionsUtil: com.example.receivers.NotificationListener


Answer 5:

该解决方案科特林:

val packageName = this.javaClass.`package`?.name


文章来源: How to Get Package Name of Source Class File in Android ?