Android HighCharts 库返回错误:无法解析:com.highsoft.highcharts:6.0.2:

问题描述 投票:0回答:2

几天前我看到HighCharts Library可用于Android的图表。

https://github.com/highcharts/highcharts-android

我阅读了文档并启动它来添加到我的项目中,但是当我尝试将 gradle 添加到我的项目中时,我收到错误:

错误:无法解析:com.highsoft.highcharts:6.0.2:
打开文件

enter image description here

他们在文档中提到了两种方法:

A) 您可以从这里下载 aar:Highcharts 并手动添加。将 aar 放入项目结构中的 libs 文件夹中。

B) 您可以将库添加到 JCenter 的 gradle 依赖项中。

当我将 .aar 文件添加到 libs 文件夹时没有问题,但是当我添加以下代码时:

HIGChartView chartView = (HIGChartView) findViewById(R.id.hc);

我的项目无法找到班级

HIGChartView
。我无法确定这是我的问题还是 HighCharts 库问题。

我还通过 Github 下载了 poject,在他们的项目上没有问题,也将 Gradle 与他们的项目进行了比较,但我无法找出问题。

我的build.gradle(模块:应用程序):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.kabloom.highcharts2"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'

    implementation 'com.highsoft.highcharts:6.0.2' // HighCharts here added

    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
android highcharts android-highcharts
2个回答
1
投票

在 github 上创建问题后,他们回复并解决了我的问题...

他们的文档有问题

enter image description here

错误的类别:

HIGChartView chartView = (HIGChartView) findViewById(R.id.hc);

正确类别:

HIChartView chartView = (HIChartView) findViewById(R.id.hc);

请注意,该库需要 Gson 才能工作,因此将其添加到您的依赖项中,如下所示:

compile 'com.google.code.gson:gson:2.8.0'

另外,他们回复:

不幸的是 Highcharts Android 还不能从 jcenter 获得,所以 您需要手动添加库。您可以通过直接执行以下操作来做到这一点 A) 中的说明来自自述文件。

参考工作代码:

build.gradle(模块:应用程序):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.package_name.highchartdemo"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

repositories{
    flatDir{
        dirs 'libs'
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    compile (name: 'highcharts-release', ext:'aar')
    compile 'com.google.code.gson:gson:2.8.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

主要活动:

   package com.package_name.highchartdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.highsoft.highcharts.Core.*;
import com.highsoft.highcharts.Common.HIChartsClasses.*;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        HIChartView chartView = (HIChartView) findViewById(R.id.hc);

        HIOptions options = new HIOptions();

        HIChart chart = new HIChart();
        chart.type = "column";
        options.chart = chart;

        HITitle title = new HITitle();
        title.text = "Demo chart";

        options.title = title;

        HIColumn series = new HIColumn();
        series.data = new ArrayList<>(Arrays.asList(49.9, 71.5, 106.4, 129.2, 144, 176, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4));
        options.series = new ArrayList<HISeries>(Collections.singletonList(series));

        chartView.options = options;
    }
}

activity_main:

    <?xml version="1.0" encoding="utf-8"?>
<com.highsoft.highcharts.Core.HIChartView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:id="@+id/hc"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.package_name.highchartdemo.MainActivity"/>

0
投票

本地导入libs->highcharts-android.aar时 对应的布局文件应该是

   <com.highsoft.highcharts.core.HIChartView
        android:id="@+id/hc"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

com.highsoft.highcharts.Core.HIChartView
->
com.highsoft.highcharts.core.HIChartView

© www.soinside.com 2019 - 2024. All rights reserved.