首页 > 解决方案 > AndroidRuntime 致命异常 Resources$NotFoundException(Resource ID #0x0)

问题描述

    at android.content.res.ResourcesImpl.getValueForDensity(ResourcesImpl.java:278)
    at android.content.res.Resources.getDrawableForDensity(Resources.java:933)
    at android.content.res.Resources.getDrawable(Resources.java:873)
    at android.content.res.Resources.getDrawable(Resources.java:848)
    at com.hadiidbouk.charts.ChartProgressBar.build(ChartProgressBar.java:131)
    at com.oakridgebs.opg.customer_portal.CustomerDashboardFragment.onCreateView(CustomerDashboardFragment.java:60)
    at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
    at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
    at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
    at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
    at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
    at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
    at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
    at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2663)
    at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2613)
    at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:246)
    at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:542)
    at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1392)
    at android.app.Activity.performStart(Activity.java:7316)
    at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3132)
    at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
    at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1978)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:232)
    at android.app.ActivityThread.main(ActivityThread.java:7165)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:888)

这是我打开屏幕时遇到的错误

这是我的Java代码

public class CustomerDashboardFragment extends Fragment {

ChartProgressBar mChart;

public CustomerDashboardFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_customer_dashboard, container, false);

    mChart = (ChartProgressBar) view.findViewById(R.id.chart_progress_bar);

    ArrayList<BarData> dataList = new ArrayList<>();

    BarData data = new BarData("Sep", 3.4f, "3.4€");
    dataList.add(data);

    data = new BarData("Oct", 8f, "8€");
    dataList.add(data);

    data = new BarData("Nov", 1.8f, "1.8€");
    dataList.add(data);

    data = new BarData("Dec", 7.3f, "7.3€");
    dataList.add(data);

    data = new BarData("Jan", 6.2f, "6.2€");
    dataList.add(data);

    data = new BarData("Feb", 3.3f, "3.3€");
    dataList.add(data);

    mChart.setDataList(dataList);
    mChart.build();

    return view;
}

}

我在片段中写了这个。我在 mChart.build() 行中遇到错误。这是我的xml代码

<com.hadiidbouk.charts.ChartProgressBar
    android:id="@+id/chart_progress_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:gravity="center"
    app:hdBarCanBeClick="true"
    app:hdBarHeight="170dp"
    app:hdBarWidth="7dp"
    app:hdBarRadius="10dp"
    app:hdMaxValue="10"
    app:hdEmptyColor="@color/empty"
    app:hdProgressColor="@color/progress"
    app:hdProgressClickColor="@color/progress_click"
    app:hdPinBackgroundColor="@color/pin_background"
    app:hdPinTextColor="@color/pin_text"
    app:hdPinPaddingBottom="5dp"
    app:hdBarTitleColor="@color/bar_title_color"
    app:hdBarTitleTxtSize="12sp"
    app:hdPinTxtSize="17sp"
    app:hdPinMarginTop="10dp"
    app:hdPinMarginBottom="55dp"
    app:hdPinMarginEnd="22dp"
    app:hdBarTitleMarginTop="9dp"
    app:hdProgressDisableColor="@color/progress_disable"/>

你能帮我解决吗我的gradle文件在下面

implementation 'com.github.hadiidbouk:ChartProgressBar-Android:2.0.6'

同步时我没有收到任何错误,但是当我在移动设备中运行并打开应用程序时出现此错误。你能帮我解决吗

标签: android

解决方案


您缺少构建 ChartProgressBar 所需的可绘制对象。您可以根据需要设置任何图钉图像

所以添加这一行 - app:hdPinDrawable="@drawable/ic_pin" 在你的 ChartProgressBar 像这样..

 <com.hadiidbouk.charts.ChartProgressBar
        android:id="@+id/chart_progress_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:gravity="center"
        app:hdBarCanBeClick="true"
        app:hdBarHeight="170dp"
        app:hdBarWidth="7dp"
        app:hdBarRadius="10dp"
        app:hdMaxValue="10"
        app:hdEmptyColor="@color/empty"
        app:hdProgressColor="@color/progress"
        app:hdProgressClickColor="@color/progress_click"
        app:hdPinBackgroundColor="@color/pin_background"
        app:hdPinTextColor="@color/pin_text"
        app:hdPinPaddingBottom="5dp"
        app:hdBarTitleColor="@color/bar_title_color"
        app:hdBarTitleTxtSize="12sp"
        app:hdPinTxtSize="17sp"
        app:hdPinMarginTop="10dp"
        app:hdPinMarginBottom="55dp"
        app:hdPinMarginEnd="22dp"
        app:hdPinDrawable="@drawable/ic_pin"
        app:hdBarTitleMarginTop="9dp"
        app:hdProgressDisableColor="@color/progress_disable"/>

推荐阅读