Как правильно загрузить библиотеки в Android Studio - PullRequest
1 голос
/ 08 октября 2019

Я новичок в Android Studio, но не новичок в программировании. Я сделал учебные пособия для AndroidStudio и создал свое первое приложение. Теперь я хочу добавить график.
Я скачал GraphView-4.2.2 с Maven. Я скопировал его в app / libs select graphview-4.2.2-javadoc.jar, щелкнув правой кнопкой мыши и "добавить как библиотеку", затем я получил всплывающее окно "Studio не может определить, какие файлы ..." и предоставляет список из 7. Я перепробовал их все.
Я думаю, что я должен получить папку com.jjoe64.graphview и папку Meta-Inf ниже графика просмотра, но я получаю только мета-инф. Я не могу получить доступ ни к одной из функций GraphView

Я использую Android Studio 3.5 на 64-битном ПК с Win10

1 Ответ

0 голосов
/ 08 октября 2019

Нет необходимости включать всю библиотеку в ваш проект, просто добавьте ее в ваши зависимости. В файле build.gradle добавьте следующее: implementation 'com.jjoe64:graphview:4.2.2'

Ознакомьтесь с официальной документацией по зависимостям Извлечение:

Удаленный двоичный файлзависимость реализация 'com.example.android:app-magic:12.3'

Это фактически сокращение для следующего:

группа реализации:' com.example.android ', name: 'app-magic', версия: '12 .3 '

Здесь объявляется зависимость от версии 12.3 библиотеки "app-magic" внутри группы пространств имен com.example.android.

Примечание. Для таких удаленных зависимостей необходимо указать соответствующие удаленные репозитории, в которых Gradle должен искать библиотеку. Если библиотека еще не существует локально, Gradle извлекает ее с удаленного сайта, когда сборка требует этого (например, когда вы нажимаете «Синхронизировать проект с файлами Gradle» или когда вы запускаете сборку).

РЕДАКТИРОВАТЬ (после комментариев):

Я сам создал пример проекта и добавил зависимость выше. Я приступил к созданию стандартного макета и добавил следующий код в свой MainActivity, и он работает просто отлично:

XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.jjoe64.graphview.GraphView
        android:id="@+id/graph"
        android:layout_width="match_parent"
        android:layout_height="200dip"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

import com.jjoe64.graphview.GraphView;
import com.jjoe64.graphview.series.DataPoint;
import com.jjoe64.graphview.series.LineGraphSeries;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        GraphView graph = (GraphView) findViewById(R.id.graph);
        LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(new DataPoint[]{
                new DataPoint(0, 1),
                new DataPoint(1, 5),
                new DataPoint(2, 3),
                new DataPoint(3, 2),
                new DataPoint(4, 6)
        });
        graph.addSeries(series);
    }

}

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.content"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.1.0-beta01'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
    implementation 'com.jjoe64:graphview:4.2.2'
}

Не беспокойтесь о других зависимостях, они есть по умолчанию в моей версии Android Studio и не должны иметь значения в этой библиотеке.

...