2017-10-04 70 views
0

我有一個庫(LIB2)項目,該項目依賴於另一個庫(LIB1)項目,我編譯爲AAR並上載到Archiva上。從另一個庫項目開始庫活動

當我嘗試使用開始從LIB2一個LIB1活動:

startActivity(new Intent(HelperActivity.this, xx.company.blabla.package.login.LoginActivity.class)); 

我得到:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference 

所以我做了一些研究,我想在這裏找到了解決方案: Error calling Android activity from .aar library.和這裏:Using an Android library project Activity within another project。現在

,如果我這樣做,正如我已經找到了解決方案,

Intent intent = new Intent(android.content.Intent.ACTION_VIEW); 
intent.setComponent(new ComponentName("xx.company.blabla.package.login", 
      "xx.company.blabla.package.login.LoginActivity")); 
startActivity(intent); 

,並在AndroidManifest.xml

<activity android:name="xx.company.blabla.package.login.LoginActivity"/> 

我得到錯誤ActivityNotFoundException建議

Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {xx.company.blabla.package.login/xx.company.blabla.package.login.LoginActivity}; have you declared this activity in your AndroidManifest.xml? 

事實是,我確實在Manifest中聲明瞭Activity,所以我不明白爲什麼它不會ee它。

任何解決方案?謝謝。

回答

0

當你使用:

intent.setComponent(new ComponentName("xx.company.blabla.package.login", 
      "xx.company.blabla.package.login.LoginActivity")); 

Android將找到打包xx.company.blabla.package.login以後設置爲文件夾容器包裝xx.company.blabla.package.login;終於找到類LoginActivity。試試:

try { 
    Class classLoginActivity = Class.forName("xx.company.blabla.package.login.LoginActivity"); 

    startActivity(new Intent(HelperActivity .this, classLoginActivity)); 
}catch (Exception e){ 

} 

希望它能幫助你!

+0

我得到NullPointerException。 java.lang.RuntimeException:無法啓動活動ComponentInfo {xx.company.blabla/xx.company.blabla.package.login.LoginActivity}:java.lang.NullPointerException:嘗試調用虛擬方法'android.content.res。資源android.content.Context.getResources()'空對象引用 – xuzhian

+0

也許你有錯誤配置庫。 Android無法找到您的圖書館。 – Dungnbhut