Класс в файле AAR недоступен в Android Studio - PullRequest
0 голосов
/ 12 октября 2018

Я создал проект библиотеки, который я создал как файл AAR, а затем включил в другой проект.Он находится в папке libs, и основной файл gradle.build содержит его: implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')

Когда я пытаюсь использовать классы этого файла aar, все они доступны, кроме одного класса.Сначала я предполагал, что это может быть Proguard, но я даже удалил Proguard, и он все еще недоступен.Это публичный класс, и он даже там, когда я декомпилирую файл AAR.

Это содержимое:

package com.onboarding;

import android.content.Context;
import android.content.Intent;
import android.support.annotation.Keep;


/**
 *
 */
@Keep
public class Builder {


    /**
     *
     */
    public static String mainColor = null;
    public static String baseUrl = null;
    public static Class firstActivity = null;
    public static Class onboardingSettingsActivity = null;


    /**
     *
     */
    public static String tosUrl = null;
    public static String privacyUrl = null;
    public static String cookieUrl = null;
    public static String contactsLearnMoreUrl = null;


    /**
     *
     */
    private static Builder builder = null;


    /**
     *
     */
    private Builder() {}


    /**
     *
     */
    public static Builder init() {
        if (builder == null) {
            builder = new Builder();
        }
        return builder;
    }


    /**
     *
     */
    public void start(final Context context) {
        final Intent intent = new Intent(context, Onboarding1.class);
        context.startActivity(intent);
    }


    /**
     *
     */
    public Builder setMainColor(final String color) {
        mainColor = color;
        return this;
    }


    /**
     *
     */
    public Builder setBaseUrl(final String url) {
        baseUrl = url;
        return this;
    }


    /**
     *
     */
    public Builder setFirstActivity(final Class c) {
        firstActivity = c;
        return this;
    }


    /**
     *
     */
    public Builder setOnboardingSettingsActivity(final Class c) {
        onboardingSettingsActivity = c;
        return this;
    }


    /**
     *
     */
    public Builder setTosUrl(final String u) {
        tosUrl = u;
        return this;
    }


    /**
     *
     */
    public Builder setPrivacyUrl(final String u) {
        privacyUrl = u;
        return this;
    }


    /**
     *
     */
    public Builder setCookieUrl(final String u) {
        cookieUrl = u;
        return this;
    }


    /**
     *
     */
    public Builder setContactsLearnMoreUrl(final String u) {
        contactsLearnMoreUrl = u;
        return this;
    }

}

Любая идея, почему я не могу получить доступ к этому классу из основного проекта?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

После случайной работы, а затем не работы, похоже, что File -> Invalidate caches / restart в Android Studio добились цели.

Так что, очевидно, Android Studio кэширует некоторую часть AAR, которая даже Clean или Rebuild исправит.

0 голосов
/ 12 октября 2018

Привет, ты проверил свои зависимости?если это было добавлено там?то, что я имел в виду, это enter image description here Также обратитесь к этой документации для различия между реализацией и API.

...