2012-04-05 40 views
1

我剛將GreenDroid庫添加到我的應用程序中。我使用GDActivity擴展了Startview,並添加了NFFApplication,並將其添加到應用標籤android:name=".logic.NFFApplication"下的Manifest中。之後實現GreenDroid

NFFAplication:

public class NFFApplication extends GDApplication { 

    @Override 
    public Class<?> getHomeActivityClass() { 
     return NFFApplication.class; 
    } 

    @Override 
    public Intent getMainApplicationIntent() { 
     return new Intent(NFFApplication.this,MainView.class); 
    } 

} 

登錄活動:

public class LoginView extends GDActivity { 

    private ProgressDialog pd = null; 
    Editor editor = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setTitle("Movie"); 
    setActionBarContentView(R.layout.loginlayout); 

的logcat:

04-05 16:12:16.714: E/AndroidRuntime(443): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.korn.nff/com.korn.nff.view.LoginView}: android.view.InflateException: Binary XML file line #27: Error inflating class greendroid.widget.ActionBar 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.os.Looper.loop(Looper.java:123) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.main(ActivityThread.java:4363) 
04-05 16:12:16.714: E/AndroidRuntime(443): at java.lang.reflect.Method.invokeNative(Native Method) 
04-05 16:12:16.714: E/AndroidRuntime(443): at java.lang.reflect.Method.invoke(Method.java:521) 
04-05 16:12:16.714: E/AndroidRuntime(443): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
04-05 16:12:16.714: E/AndroidRuntime(443): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
04-05 16:12:16.714: E/AndroidRuntime(443): at dalvik.system.NativeStart.main(Native Method) 
04-05 16:12:16.714: E/AndroidRuntime(443): Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class greendroid.widget.ActionBar 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.createView(LayoutInflater.java:513) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
04-05 16:12:16.714: E/AndroidRuntime(443): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.Activity.setContentView(Activity.java:1622) 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.app.GDActivity.ensureLayout(GDActivity.java:187) 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.app.GDActivity.getActionBar(GDActivity.java:265) 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.app.GDActivity.setTitle(GDActivity.java:256) 
04-05 16:12:16.714: E/AndroidRuntime(443): at com.korn.nff.view.LoginView.onCreate(LoginView.java:39) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
04-05 16:12:16.714: E/AndroidRuntime(443): ... 11 more 
04-05 16:12:16.714: E/AndroidRuntime(443): Caused by: java.lang.reflect.InvocationTargetException 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.widget.ActionBar.<init>(ActionBar.java:130) 
04-05 16:12:16.714: E/AndroidRuntime(443): at java.lang.reflect.Constructor.constructNative(Native Method) 
04-05 16:12:16.714: E/AndroidRuntime(443): at java.lang.reflect.Constructor.newInstance(Constructor.java:446) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.createView(LayoutInflater.java:500) 
04-05 16:12:16.714: E/AndroidRuntime(443): ... 24 more 
04-05 16:12:16.714: E/AndroidRuntime(443): Caused by: android.content.res.Resources$NotFoundException: File res/drawable-hdpi/title_bar_shadow.9.png from drawable resource ID #0x0 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.Resources.loadDrawable(Resources.java:1710) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.TypedArray.getDrawable(TypedArray.java:548) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.View.<init>(View.java:1850) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.View.<init>(View.java:1799) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.ViewGroup.<init>(ViewGroup.java:284) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.widget.LinearLayout.<init>(LinearLayout.java:92) 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.widget.ActionBar.<init>(ActionBar.java:134) 
04-05 16:12:16.714: E/AndroidRuntime(443): ... 28 more 
04-05 16:12:16.714: E/AndroidRuntime(443): Caused by: java.io.FileNotFoundException: res/drawable-hdpi/title_bar_shadow.9.png 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.AssetManager.openNonAssetNative(Native Method) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.AssetManager.openNonAsset(AssetManager.java:390) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.Resources.loadDrawable(Resources.java:1702) 

回答

3

我不是100%肯定,如果是這樣的問題,但它可以是你忘了重寫主題? Greendroid需要運行應用程序的自定義主題。

這裏的greendroid文檔中的行:

You finally need to make your project use the GreenDroid base theme. In your AndroidManifest.xml, go to the application tag and add android:theme="@style/Theme.GreenDroid" as a new attribute. 

步驟,你必須遵循:

  1. 下載GreenDroid庫您的計算機上用一個簡單的:Git的 克隆http://github.com/cyrilmottier/GreenDroid.git。像往常一樣,Git 將克隆GreenDroid存儲庫並創建一個文件夾GreenDroid ,其中包含3個文件夾: GreenDroid:核心庫。這是將主要鏈接到您的代碼的代碼 GreenDroid-GoogleAPIs:GreenDroid的擴展包括Google API相關功能(例如GDMapActivity) GDCatalog:演示應用程序。這個項目包含很多代碼片段,向您展示如何使用GreenDroid。

  2. 自2010年5月以來,ADT插件添加了一個驚人的新功能: 與庫項目一起工作的能力。使用GreenDroid由 組成,將GreenDroid項目作爲庫應用於您的應用程序。 A 有關如何使用庫項目的完整說明,請參閱 Android文檔網站。確保您的開發環境使用最新的工具和平臺,因爲舊版本的 版本的工具和平臺不支持使用 庫項目進行構建。

  3. 如果您想使用一些Google API功能,請確保您使用GreenDroid-GoogleAPIs庫爲 。 GreenDroid-GoogleAPIs是基於GreenDroid的 。因此,您不需要將GreenDroid 作爲Android庫鏈接到您的項目。默認情況下,GreenDroid 主題從@android:style/Theme繼承。如果您的項目從不同的主題繼承 ,則必須自行修改GreenDroid庫 (並且每次更新GreenDroid時都要這樣做,因爲 更新會刪除所有更改 - 仍然可以通過 的方式克服問題)。打開res/values/gd_themes.xml和 用您自己的主題替換父主題@android:style/Theme。

  4. 很多GreenDroid的功能(GDActivity,GDListActivity或 GDTabActivity例如)要求您的應用程序是一個 GDApplication所以一定要確保你的應用程序是一個GDApplication 類。爲了做到這一點,只需在您的AndroidManifest.xml的 的應用程序標籤中添加 android:name =「greendroid.app.GDApplication(其中 greendroid.app.GDApplication可能會被您自己的類取代, 從GDApplication繼承) 。

  5. 你終於需要使你的項目中使用GreenDroid基本主題 在AndroidManifest.xml後,轉到應用程序標籤,並添加 機器人:主題=「@風格/ Theme.GreenDroid」作爲一個新的屬性。

相關問題