我有一个非常令人不安的滞后Android Studio编辑器.我在堆栈上阅读了所有提出的优化建议,并做了一些事情来加速它,但没有任何帮助.
我的设备是2015年中期的MBP,配备16 GB Ram和512 GB SSD HD.该项目是一个Java项目,在我的其他笔记本电脑上还可以.我能做的其他事吗?
我正在尝试使用ProGuard和新的Gradle 3.0.0版本创建一个APK.对于我认为在ProGuard配置文件中忽略的类,我收到了很多警告.相同的配置适用于Gradle 2.3.3但似乎在3.0.0上中断.警告很多,几乎没有读取ProGuard配置.
我的build.gradle
buildscript {
repositories {
mavenCentral()
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.google.gms:google-services:3.0.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
}
}
allprojects {
repositories {
jcenter()
maven {
url 'https://jitpack.io'
}
maven {
url 'https://maven.google.com'
}
}
}
android{
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
signingConfig signingConfigs.release
lintOptions {
disable 'MissingTranslation'
}
}
compileSdkVersion 27
buildToolsVersion "27.0.1"
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
Run Code Online (Sandbox Code Playgroud)
下面的Proguard警告.
Warning: library class android.animation.FloatArrayEvaluator extends …
Run Code Online (Sandbox Code Playgroud) android proguard gradle android-gradle-plugin android-proguard
我有一个生命周期识别片段和一个LifecycleObserver
类
public class MyFragment extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new MyObserver(this);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_main, container, false);
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我的Observer类,它记录了所有片段事件
public class MyObserver implements LifecycleObserver {
private static final String TAG = "MyObserver";
public MyObserver(LifecycleOwner lifecycleOwner) {
lifecycleOwner.getLifecycle().addObserver(this);
}
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public void onCreate(){
Log.d(TAG, "onCreate: ");
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public void onPause(){
Log.d(TAG, "onPause: ");
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
public void onDestroy(){
Log.d(TAG, "onDestroy: …
Run Code Online (Sandbox Code Playgroud) android android-lifecycle android-fragments fragment-lifecycle
错误:无法找到方法'com.android.build.gradle.tasks.factory.AndroidJavaCompile.setDependencyCacheDir(Ljava/io/File;)V'.
此意外错误的可能原因包括:
我在 Android Studio 中遇到布局预览的奇怪行为。我开发了一个扩展 AppCompatButton 的自定义视图,并且布局是运行时预期的布局,但是,布局预览中的布局未正确显示。特别是,按钮被显示,但没有从自定义属性设置的背景颜色,也没有 drawableStart(根据名为“social”的自定义属性在自定义视图 init 中设置)。有关其他详细信息,请参阅下面的代码。请注意,自定义视图位于作为模块导入主项目的库中。我在这里缺少什么?谢谢 :)
自定义视图代码:
public class SocialButton extends AppCompatButton {
private static final String TAG = SocialButton.class.getSimpleName();
Context mContext;
int backgroundColor;
int socialId;
int textColor;
public SocialButton(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
mContext = context;
TypedArray a = context.getTheme().obtainStyledAttributes(
attrs,
R.styleable.SocialButton,
0, 0);
initDefaults(a);
setIconForSocial();
initStateListDrawable();
}
public void initDefaults(TypedArray a){
try {
backgroundColor = a.getColor(R.styleable.SocialButton_backgroundColor, Color.WHITE);
textColor = a.getColor(R.styleable.SocialButton_textColor,
ContextCompat.getColor(mContext,R.color.social_button_text_color));
socialId = a.getInt(R.styleable.SocialButton_social, 0);
} finally {
a.recycle();
}
} …
Run Code Online (Sandbox Code Playgroud) 我正在研究适用于 Android 应用程序概念的动态主题。我正在以编程方式为所有 UI 应用主题颜色。我想以EditText
编程方式更改选择背景颜色。
任何帮助将非常感激。我想更改文本选择突出显示颜色。
user-interface android android-theme android-edittext android-view
我已经开始学习Kotlin。我想知道init
block和之间的区别constructor
。这和我们如何使用它来改善之间有什么区别?
class Person constructor(var name: String, var age: Int){
var profession: String = "test"
init{
println("Test")
}
}
Run Code Online (Sandbox Code Playgroud) 我正在研究这个基于 BndTools 的 OSGi 项目:https : //github.com/Jafre13/ISS-Product
我的项目虽然需要一个基于非 OSGi 的库(aliasi-lingpipe - https://mvnrepository.com/artifact/de.julielab/aliasi-lingpipe/4.1.0)。
这就是问题开始的地方。首先,我尝试直接从 Maven 存储库中添加 JAR,因为 BndTools 据称与 Maven 存储库兼容,但它似乎不适用于“存储库浏览器”。即使将 Maven Central 插件添加到http://bnd.bndtools.org/plugins/maven.html 中所述的 build.bnd 文件,仍然会产生相同的结果。
放弃让 Maven 工作,我尝试以最简洁的方式来做,自己下载 JAR 并将其添加为此处指定的普通 JAR:http : //bndtools.org/faq.html(6 How Can I Depend on a构建时的普通 JAR 文件?)
这次 JAR 得到了识别,我可以开始在代码中使用它。但是一旦你启动了 OSGi 框架,当它试图解析非 OSGi 类路径时,一切都会再次崩溃,导致如下接线错误:
无法解析包:[slf4j.api-1.7.25 org.osgi.framework.BundleException: 无法解析 slf4j.api [6](R 6.0): 缺少需求 [slf4j.api [6](R 6.0)] osgi.wiring.package; (&(osgi.wiring.package=org.slf4j.impl)(version>=1.6.0)) 未解决的需求:[[slf4j.api [6](R 6.0)] osgi.wiring.package; (&(osgi.wiring.package=org.slf4j.impl)(version>=1.6.0))] , dk.sdu.sso.sred-0.0.0.201712041036 org.osgi.framework.BundleException: 无法解析 dk。 sdu.sso.sred [7](R 7.0): …
我正在研究其中一个项目.我正在将JSON映射到Java对象.但是在json中,一个字段以大写字母开头(MessageId).所以我无法编写自动映射MessageId的正确的getter和setter.所以有人能建议我一个正确的方法吗?我的吸气剂和制定者如下: -
public String getMessageId() {
return MessageId;
}
public void setMessageId(String messageId) {
MessageId = messageId;
}
Run Code Online (Sandbox Code Playgroud)