私の主な活動はAppCompatActivityを拡張し、私はサポートのツールバーを使用しています:古いAPI(つまりv19)でwindowDrawSystemBarBackgroundsとstatusBarColorを実装するにはどうすればよいですか?
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimaryDark"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
は私が> = V21で正常に動作windowsDrawSystemBarBackgroundとstatusBarColor属性を使用して、ツールバーを色付けしたい:
V19上で実行しようとしたときしかし、すべての地獄の休憩は、すなわち、緩い:
java.lang.RuntimeException: Unable to start activity ComponentInfo{ca.toadlybroodledev.sublist/ca.toadlybroodledev.sublist.ActivityMain}: java.lang.NullPointerException: println needs a message
すべてのLogエラーがNullメッセージを送信したようですか?これで本当に困った。
は、ここでそれがルートだとしても、拡張DrawerLayoutを持っている私のメインの活動のレイアウト、です:私はAPIの> = 21のために働く別々のスタイル(V21)リソースを作成しようとしました
<ca.toadlybroodledev.sublist.DrawerCustomLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- This LinearLayout represents the contents of the screen -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- The ActionBar displayed at the top when drawer is shown -->
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
</android.support.design.widget.AppBarLayout>
<!-- The main content view where fragments are loaded -->
<FrameLayout
android:id="@+id/placeholder_for_fragments"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<!-- The navigation drawer that comes from the left -->
<!-- Note that `android:layout_gravity` needs to be set to 'start' -->
<android.support.design.widget.NavigationView
android:id="@+id/nvView"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/colorPrimaryDark"
app:itemIconTint="@drawable/drawer_item_color"
app:itemTextColor="@drawable/drawer_item_color"
app:headerLayout="@layout/nav_header"
app:menu="@menu/drawer_menu" />
</ca.toadlybroodledev.sublist.DrawerCustomLayout>
、しかしdoesnの基本的な下位互換性の問題を解決できません。私はまた、 "android:theme =" @ style/ThemeOverlay.AppCompat.Dark.ActionBar "をツールバーから削除してみました。違いはありません。
バージョンアップされたAndoidスタイルとテーマを正しく実装していただければ幸いです。いくつかの理由は、常に誰もが興味を持っている場合は、私は最終的に、ビルドファイルにこれを追加することにより、縮小化することなく、V19用にビルドすることができました[編集1] ...
を私の目を逃れ:
dexOptions { javaMaxHeapSize "2g" }
、ここでは、スタックですトレース私は今得ている:
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{...ActMain}: java.lang.NullPointerException: println needs a message
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.d(Log.java:139)
at ca.toadlybroodledev.sublist.ActMain.updateColors(ActMain.java:404)
at ca.toadlybroodledev.sublist.DrawerCustomLayout.onFinishInflate(DrawerCustomLayout.java:50)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:764)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143)
at ca.toadlybroodledev.sublist.ActMain.onCreate(ActMain.java:77)
NPEの原因は何ですか? stacktrace全体を投稿してください。 –
私はクラスを難読化しているように見えるので、それを避けることを望んでいました.v19のためのビルドを成功させるために縮小する必要があったからです。 – landonmutch
私はデバッグ・プロフェア・ファイルに以下のルールを持っていますが、何らかの理由でそれでも私のクラスを難読化していますか? -keep class ca.toadlybroodledev.sublist – landonmutch