我有一个相当大的Android App项目,它引用了几个库项目.一切都很好,直到我将eclipse ADT插件升级到最新版本(v22).我当然也升级了SDK.我在eclipse中没有看到任何编译错误,但是当我在手机上运行项目时,我得到一个NoClassDefFoundError.
java.lang.NoClassDefFoundError: org.acra.ACRA
....
Run Code Online (Sandbox Code Playgroud)
方舟库包含在引用库中的项目(在libs文件夹)中的一个,我可以看到它在Package Explorer中的"Android的私人图书馆",也正如我所说的,没有编译错误.该项目在没有升级ADT的其他人的计算机上运行良好.
我已经尝试了很多东西,包括但不限于:
一切都没有成功,所以我在这里真的很绝望.
如果有人能给我一个如何解决这个问题的提示,我会很高兴.
我只是从Eclipse切换到Android Studio,发现了这种奇怪的行为.当我在方法的第一行添加断点时,我看不到参数值.我唯一能看到的是this参考.我要么必须进行一个调试步骤,要么将断点设置为第一个之后的一行,以查看参数值.
其他人有这个问题或知道这里出了什么问题?
我打算分享图像的意图.这适用于大多数提供商,但适用于Google+.Google+会在没有图片的情况下打开帖子活动并显示祝词"您只能发布存储在设备上的照片".同时.
File f = storeImage(image); // f = /data/data/com.myapp/files/1333070776978.jpg
Uri uri = Uri.fromFile(f);
Intent share = new Intent(Intent.ACTION_SEND);
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
share.setType("image/jpeg");
share.putExtra(Intent.EXTRA_STREAM, uri);
share.putExtra(Intent.EXTRA_TITLE,"Share that title");
share.putExtra(Intent.EXTRA_SUBJECT,"Share that subject");
share.putExtra(Intent.EXTRA_TEXT,"Check that out...");
share.putExtra("sms_body", "sms body");
startActivity(Intent.createChooser(share, "Share Image"));
Run Code Online (Sandbox Code Playgroud)
我保存图像
Context.openFileOutput(fileName, Context.MODE_WORLD_READABLE);
Run Code Online (Sandbox Code Playgroud)
我的理解是,通过设置FLAG_GRANT_READ_URI_PERMISSION,我授予Google+特定访问权限.
当我将图像存储到MediaStore时它可以工作,但我实际上不想弄乱用户图像库.
ContentValues values = new ContentValues(2);
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DATA, f.getAbsolutePath());
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏
西蒙
昨天我获得了Android N预览的新升级.自从我升级以来,我再也无法启动我的应用了.
java.io.IOException: Cleartext HTTP traffic to myserver.com not permitted
Run Code Online (Sandbox Code Playgroud)
我试图在清单中设置usesCleartextTrafficto true或添加一个network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">myserver.com</domain>
</domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
两者都没有奏效.关于那里发生了什么的任何想法?
当我尝试在清单中定义networkSecurityConfig时,我收到编译错误
Error:(35) No resource identifier found for attribute 'networkSecurityConfig' in package 'android'
Run Code Online (Sandbox Code Playgroud)
不确定为什么.文件就在那里,一切都很好看.
在Google的Android问题跟踪器中找到此建议.他们建议将network_security_config定义移到meta-data.我仍然得到相同的例外.
可以在Django模型中设置默认过滤器吗?
就像是:
class MyModel(models.Model):
timestamp = models.DateTimeField(default=datetime.utcnow)
active = models.BooleanField(default=True)
class Meta:
ordering = ['-timestamp']
filtering = [active=True]
Run Code Online (Sandbox Code Playgroud) 我刚开始使用Android支持库中的DialogFragment,到目前为止发现它非常烦人.我有一些从我的应用程序中的不同位置调用的自定义AsyncTasks.有两种情况我遇到DialogFragments的问题:
至少我认为两者都是相当常见的情况,在这两种情况下我都得到了
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
Run Code Online (Sandbox Code Playgroud)
这就是我的AsyncTasks的结构:
private class UploadImageAsyncTask extends AsyncTask<Void, Void, Image> {
private ProgressDialogFragment dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
FragmentManager fm = getSupportFragmentManager();
dialog = new ProgressDialogFragment();
dialog.show(fm, "ProgressDialogFragment");
}
@Override
protected Image doInBackground(Void... params) {
...
}
@Override
protected void onPostExecute(Image result) {
super.onPostExecute(result);
dialog.dismiss();
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以设置一个设置,防止屏幕在调试时进入睡眠状态,我可以在onActivityResult()中设置一个标志,然后在onStart()中打开对话框,但这不是我真正想要的.还有更好的解决方案吗?
谢谢西蒙
我想从相机捕获图像并将其保存到私有应用程序缓存目录.我意识到我必须给相机应用程序写入我的私人目录的权限,所以我添加了FLAG_GRANT_WRITE_URI_PERMISSION标志.
发生了什么,相机应用程序打开,我可以拍照,但当我点击确定按钮,没有任何反应.相机应用程序保持打开状态 没有日志输出.我想这是因为许可问题.
private void getCameraImage() {
try {
mTmpFile = File.createTempFile("tmp", ".jpg", getCacheDir());
Uri imgUri = Uri.fromFile(mTmpFile);
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, imgUri);
i.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
// i.setData(imgUri); // if uncommented, i get an ActivityNotFound Exception
startActivityForResult(i, REQUEST_CAMERA);
} catch (IOException e) {
Log.e(TAG, "getCameraImage()", e);
Toast.makeText(this, "Something went wrong", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
关于如何纠正这些问题的任何见解?
编辑:
当我将目录更改为公共SD卡时,它工作正常.
mTmpFile = File.createTempFile("tmp", ".jpg", Environment.getExternalStorageDirectory());
Run Code Online (Sandbox Code Playgroud)
谢谢西蒙
我按照heroku文档安装了一个django应用程序,起初它工作正常.一天后,我将一些更改推送到服务器.在那之后,我根本无法访问该应用程序:FATAL: password authentication failed for user "drjstoymyqyarj"
我再也无法同步数据库了:
$ heroku run python manage.py syncdb
Running `python manage.py syncdb` attached to terminal... up, run.1
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
return self.handle_noargs(**options)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", …Run Code Online (Sandbox Code Playgroud) 在Android活动中,我首先恢复EditText中的文本,然后向其添加TextWatcher.
private static int WC = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("TextWatcherTest", "onCreate:\t" +CLASS_NAME);
setContentView(R.layout.main);
EditText et = (EditText)findViewById(R.id.editText);
Log.e("TextWatcherTest", "Set text xyz");
et.setText("xyz");
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void afterTextChanged(Editable s) {
Log.e("TextWatcherTest", "afterTextChanged:\t" +s.toString());
}
});
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行活动时,即使在设置文本后添加了Watcher本身,也会调用afterTextChanged方法.所以日志输出是这样的
onCreate: LifecycleMain Set text xyz // screen rotation onCreate: LifecycleMain Set text …
我试图忽略某些特定文件的IconDensities lint警告.
这是我得到的棉绒警告:
Usability:Icons
1 warning IconDensities: Icon densities validation
Icon densities validation
../../../src/main/res/drawable-xxhdpi: Missing the following drawables in drawable-xxhdpi:
my_image_1.png, my_image_2.png, my_image_3.png, my_image_4.png, my_image_5.png... (22 more)
Run Code Online (Sandbox Code Playgroud)
现在,假设我只想忽略第一个文件的警告my_image_1.png,而不是其他文件.
我有一个lint.xml定义lint规则异常的文件:
<lint>
...
<issue id="IconDensities">
<ignore path="src/**/res/drawable-xxhdpi/my_image_1.png" />
</issue>
</lint>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,文件仍显示在警告中.如果我使用regexp而不是path,那么所有文件都会被忽略.
顺便说一句:我知道我应该通过提供所有密度的文件来解决它,但这不是我现在正在寻找的.
编辑01/18/2019:
望着实际执行皮棉检查类在这里,我没有看到有任何可能使人们有可能忽略单个文件.所以这可能真的不可能:-(
android ×8
django ×2
adt ×1
camera ×1
debugging ×1
eclipse ×1
google-plus ×1
heroku ×1
http ×1
https ×1
image ×1
lint ×1
model ×1
permissions ×1
postgresql ×1
python ×1
textwatcher ×1