标题不言自明,但我会添加一些我一路上注意到的指针.我希望任何在开发Android时都能体验到最终结果的人试图重现这个并看看这种情况是否真的如此,如果有人有解决方案,那会让我很高兴:),这是非常令人沮丧的开发时我需要硬重启我的电脑......
当Logcat过度填充时会发生崩溃.过度填充我的意思是,从某个时间点开始,如果您将设备连接在调试模式中一段时间,并且您将查看Logcat视图,它将仅显示添加到日志中的新"delta"行过去的短暂间隔约为2秒.
如果您要注意,当Logcat过度填充已调试的设备时,对用户交互的响应很慢(这可能是您的指示,Logcat在测试您的应用程序时过度填充),并执行其他操作非常慢.
如果你要保持设备连接并添加更多日志,那么间隔时间为5-10秒,Eclipse开始表现得很奇怪,之后,你无能为力,Windows 7冻结,只有硬重启允许你回去工作了.
如果我只是在运行应用程序的情况下将设备连接到调试模式,我每次都可以重现这个.
我用Google搜索了这个,然后什么都没有.我假设如果我和我的同事遇到这个(我们有相同的Eclipse设置),那么其他人也应该经历这个,所以在发布错误之前,我想确认一下......
细节:
Windows 7的
Eclipse 3.6
ADT 10.0.0.v201102162101-104271(今日最新消息)
谢谢,
亚当.
我是一位经验丰富的(Java,Eclipse和Maven)开发人员,到目前为止已经使用了几个框架.每次我尝试从新的东西开始,似乎有可能下载和安装它的大量配置.
我在这里查看说明以及所有近页,但它们似乎已过时,Eclipse插件路径无效,当我安装最新版本时,我发现没有网站(2.0.2),它说我安装了更新版本.
另外,我读过的大多数帖子中的Maven设置似乎都很模糊.
我正在使用:
我不记得安装JavaFX.
我错过了什么?在哪里可以阅读有关设置以开始使用此框架?
这个问题是如此基本,我没有找到它的文档.
我有一个Android库项目,我想导出它的aar文件,并在另一个项目中使用它.
我有以下gradle.build文件,来自其他许多例子:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'android-library'
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 7
}
}
Run Code Online (Sandbox Code Playgroud)
我想使用纯Gradle来运行它,这意味着我需要运行任务,但首先,我得到以下错误:
> Plugin with id 'android-library' not found.
Run Code Online (Sandbox Code Playgroud)
为什么没有找到插件,我应该运行哪些任务?
谢谢,亚当.
嘿,我认为标题总结了它,但仍然.
我需要从已编译的.class文件中提取对象的完全限定名称,有人能指出我正确的方向吗?
谢谢,
亚当.
我有以下内容:
public class A extends B {
static class C {
Object field1;
int field2;
boolean field3;
}
}
Run Code Online (Sandbox Code Playgroud)
我无法通过反射拿到C级!
我尝试过以下方法:
-keep class com.path.to._class.A$** {*;}
-keep class com.path.to._class.A$* {*;}
-keep class com.path.to._class.A$C {*;}
-keep class com.path.to._class.A$C {
<fields>;
}
-keep class com.path.to._class.A$C {
Object field1;
int field2;
boolean field3;
}
Run Code Online (Sandbox Code Playgroud)
以上都没有奏效.我在这里做错了吗?
也许值得一提的是B扩展了View ......
我最近注意到我的应用程序偶尔有LAG.而LAG我的意思是它可能需要40秒,取决于我使用Wifi还是移动数据......
我加载页面URL,然后加载js执行:
webView = (WebView) view.findViewById(R.id.WebView);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
logDebug("Loading URL: " + url);
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return WrappingClass.this.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
logInfo("loading JavaScript to webview.");
webView.loadUrl("full-js-here");
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
logError("error code:" + errorCode);
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
WebSettings webSettings …Run Code Online (Sandbox Code Playgroud) android android-webview android-browser webviewclient android-websettings
我问这个和这个前质疑很长一段时间,现在我有时间(没有选择)我已经通过我的一些项目的设立工作我的方式.
结构类似于前一个问题中的结构,但有一个扭曲......
?Just a folder
?
??? Project 1 - (Pure Java Modules)
? ?
? ??? Module A1
? ??? Module B1
? :
? ??? Module Z1
?
??? Project 2 - (Android Libraries Modules)
? ?
? ??? Module A2
? ??? Module B2
? :
? ??? Module Z2
?
??? Actual Android Project
Run Code Online (Sandbox Code Playgroud)
所有子模块都依赖于前一个模块,例如Z1取决于X1 ...... B1取决于A1,同样适用于{X} 2系列.
由于我有多个项目依赖于相同的顶级库(Z2,Z1),我想节省我的痛苦和文本,并尽可能避免在项目中重复以下内容:
在设置文件中:
include ':project1', ':project1:A1', ':project1:B1',..., ':project1:Z1'
include ':project2', ':project2:A2', ':project2:B2',..., ':project2:Z2'
project(':project1').projectDir = …Run Code Online (Sandbox Code Playgroud) dependencies android gradle android-studio android-gradle-plugin
最近我一直在研究java/android中的内存泄漏,几乎无处不在,它说我应该使用带有弱引用的静态内部类而不是匿名类.
所以,在我的Android应用程序中,我开始这样做,但很快就厌倦了它,因为它是很多样板代码...我认为有一个替代解决方案,我更喜欢使用,但我不确定它是在防止内存泄漏方面,静态内部类的有效替代方法.正如我之前所说,我还没有看到其他任何地方建议的解决方案(都说使用静态内部类)所以这就是为什么我不确定我的替代方案是否有效.
使用我的应用程序中的一个简单示例:
我有一个名为WebClient的类来处理异步Web请求,它接受一个名为iCallback的接口,它将响应从服务器返回给调用者,在我的活动中,一旦我得到这个回调,我需要关闭一个对话框,并可能执行一些与活动相关的事情(比如触发onBackPressed()和setResult()).
所以这是我创建的静态内部类:
private static class CallBack implements WebClient.ICallback
{
private WeakReference<ProgressDialog> mProgDiag;
private WeakReference<BaseActivity> mActivity;
public CallBack(BaseActivity activity, ProgressDialog progDiag)
{
this.mProgDiag = new WeakReference<>(progDiag);
this.mActivity = new WeakReference<>(activity);
}
@Override
public void onCallback(String data)
{
String responseAsString = Utils.extractStringFromResponse(...);
final BaseActivity parentActivity = mActivity.get();
ProgressDialog dialog = mProgDiag.get();
if(dialog != null)
{
dialog.dismiss();
}
if (responseAsString == null)
{
if(parentActivity != null)
{
Utils.makeServerErrorDialog(parentActivity,
new iDialogButtonClickedListener()
{
@Override
public void onDialogButtonClicked()
{
parentActivity.onBackPressed();
}
});
} …Run Code Online (Sandbox Code Playgroud) 今天我的最终项目设置具有Android库依赖性.该Android库依赖项目与最终项目位于同一工作区中.
我想将该库项目及其SOURCES和ANDROID RESOURCES 导出到一些存档,jar,apk,apklib,任何允许我将该文件添加为依赖项的东西,而不是强制包含/签出项目的资源和资源进入工作区.
我知道Maven有点解决这个问题,但这不是我的目标,我试图让简单的Eclipse Android项目能够将Android库添加为依赖项.
(我不介意在Eclipse中使用带有非Maven Android项目的apklib Maven产生,但我想这将毫无意义......)
如何才能做到这一点?
我需要使用Gradle构建一个依赖于Android库项目A的Android项目,该项目取决于另一个Android库项目B.
到目前为止,我有以下内容:
Android项目:
的build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile project(':LibA')
}
android {
compileSdkVersion 7
buildToolsVersion "17.0.0"
}
Run Code Online (Sandbox Code Playgroud)
manifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cyborg.template"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="7" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name="com.cyborg.template.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
Android库A:
的build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply …Run Code Online (Sandbox Code Playgroud) android ×8
java ×4
gradle ×3
eclipse ×2
.class-file ×1
adt ×1
build.gradle ×1
decompiling ×1
dependencies ×1
javafx ×1
logcat ×1
maven ×1
memory-leaks ×1
proguard ×1