0

我目前正在編寫Android Bootstrap應用程序,我希望新的DataPickers en可以使用新的小部件而無需擔心移植到2.1+ 因此我使用HoloEveryWhere庫。我也使用Android引導與Butterknife庫Butterknife庫不與HoloEverywhere/Android引導工作

當我調試,我得到這個例外

E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{nl.webridge.whtsnxt.debug/nl.webridge.whtsnxt.authenticator.BootstrapAuthenticatorActivity}: butterknife.ButterKnife$UnableToInjectException: Unable to inject views for n[email protected]40619210 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
      at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
      at android.os.Handler.dispatchMessage(Handler.java:99) 
      at android.os.Looper.loop(Looper.java:130) 
      at android.app.ActivityThread.main(ActivityThread.java:3687) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:507) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: butterknife.ButterKnife$UnableToInjectException: Unable to inject views for n[email protected]40619210 
      at butterknife.ButterKnife.inject(ButterKnife.java:176) 
      at butterknife.ButterKnife.inject(ButterKnife.java:104) 
      at nl.webridge.whtsnxt.authenticator.BootstrapAuthenticatorActivity.onCreate(BootstrapAuthenticatorActivity.java:140) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
            at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
            at android.os.Handler.dispatchMessage(Handler.java:99) 
            at android.os.Looper.loop(Looper.java:130) 
            at android.app.ActivityThread.main(ActivityThread.java:3687) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:507) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.reflect.InvocationTargetException 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:507) 
      at butterknife.ButterKnife.inject(ButterKnife.java:171) 
            at butterknife.ButterKnife.inject(ButterKnife.java:104) 
            at nl.webridge.whtsnxt.authenticator.BootstrapAuthenticatorActivity.onCreate(BootstrapAuthenticatorActivity.java:140) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
            at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
            at android.os.Handler.dispatchMessage(Handler.java:99) 
            at android.os.Looper.loop(Looper.java:130) 
            at android.app.ActivityThread.main(ActivityThread.java:3687) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:507) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.ClassCastException: org.holoeverywhere.widget.AutoCompleteTextView 
      at nl.webridge.whtsnxt.authenticator.BootstrapAuthenticatorActivity$$ViewInjector.inject(BootstrapAuthenticatorActivity$$ViewInjector.java:14) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:507) 

我想有一個與我在我的應用程序使用HoloEverywhere活動的問題。

例如我使用導入org.holoeverywhere.app.Activity;在我所有的Activity類中。

但Butterknife使用android.app.Activity;問題是,我無法在Butterknife中更改代碼以使用HoloEverywhere中的Activity。

請告訴我您對此的看法我使用Butterknife和HoloEveryWhere的最新版本。

+0

他很好,但如果你只想要DataPicker,你可以使用https://github.com/derekbrameyer/android-betterpickers或其他庫。這會更容易。 –

+1

是的我知道,但我只是喜歡圖書館,因爲它修復了舊設備的錯誤,所以我不必照顧!無論如何感謝您的幫助! –

回答

1

嘗試建立在你的AndroidManifest.xml中的全息主題:

<application 
    android:theme="@style/Holo.Theme.NoActionBar.Fullscreen" 

也許只有在發生的事情你的問題(也是在清單)活動

<activity 
    android:theme="@style/Holo.Theme.NoActionBar.Fullscreen" 

當然在你的java類中,如果組件被定義爲xml佈局中的全息組件,那麼在你的java類中,你必須像從事的那樣從holo庫中導入該組件:

import org.holoeverywhere.app.Activity 

import org.holoeverywhere. whatever (like button, switch, whatever) 
+0

我深信這是在butterknife圖書館中,我沒有正確看待活動中的進口。謝謝!此外Holo.Theme.NoActionBar.Fullscreen比actionbarcompat更好,因爲全屏現在正在舊設備上工作! –

+0

還有一件事:我寫了你Holo.theme.noactionbar.fullscreen,但還有另一個主題,你可以申請你的應用程序...不僅僅是一個。 –

+0

是的,我知道我已經有一個自定義的主題,這是建立在Holo.Theme.Light上,但是我忘了將Holo主題應用到Authenticator! –

0

檢查您@InjectView S有正確的類型。我使用了ImageView而不是LinearLayout

+1

好的:)我已經從HoloEverywhere切換回ActionBarCompat,所以我刪除了所有的東西。但感謝回答可能對其他人有用!!, –

0

同時檢查您是否沒有正確使用其他ButterKnife的注射註釋。我使用@OnItemClick註釋RecyclerView,這導致了RuntimeException。