Class AAR 文件在 Android Studio 中不可用
Class in AAR file not available in Android Studio
我创建了一个库项目,我将其构建为 AAR 文件,然后将其包含在另一个项目中。它位于 libs 文件夹中,主 gradle.build 文件包含它:implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
当我尝试使用这个 aar 文件的 classes 时,除了一个 class 之外,所有文件都可用。我一开始以为是Proguard,后来我连Proguard都去掉了,还是不可用。它是一个 public class,甚至在我反编译 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;
}
}
知道为什么我无法从主项目访问这个 class 吗?
谢谢!
您好,您检查过您的依赖项了吗?如果它被添加在那里?我的意思是这个 Also refer to this documentation 实现和 api 之间的区别。
在随机工作然后不工作之后,似乎是 Android Studio 中的 File -> Invalidate caches / restart
成功了。
显然 Android Studio 缓存了 aar 的某些部分,即使 Clean
或 Rebuild
也无法修复。
我创建了一个库项目,我将其构建为 AAR 文件,然后将其包含在另一个项目中。它位于 libs 文件夹中,主 gradle.build 文件包含它:implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
当我尝试使用这个 aar 文件的 classes 时,除了一个 class 之外,所有文件都可用。我一开始以为是Proguard,后来我连Proguard都去掉了,还是不可用。它是一个 public class,甚至在我反编译 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;
}
}
知道为什么我无法从主项目访问这个 class 吗?
谢谢!
您好,您检查过您的依赖项了吗?如果它被添加在那里?我的意思是这个
在随机工作然后不工作之后,似乎是 Android Studio 中的 File -> Invalidate caches / restart
成功了。
显然 Android Studio 缓存了 aar 的某些部分,即使 Clean
或 Rebuild
也无法修复。