小编Sim*_*ays的帖子

升级到ADT 22后,库不会再添加到APK

我有一个相当大的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的其他人的计算机上运行良好.

我已经尝试了很多东西,包括但不限于:

  • 重新安装android SDK
  • 下载一个新的ADT包
  • 删除我的所有代码,从git再次获取它
  • 将相关库复制到应用程序项目
  • 注释掉使用这个库的代码 - 我只是为下一个库得到了同样的错误

一切都没有成功,所以我在这里真的很绝望.

如果有人能给我一个如何解决这个问题的提示,我会很高兴.

eclipse android adt

236
推荐指数
2
解决办法
7万
查看次数

当断点位于方法的第一行时,无法在Android Studio中看到参数值

我只是从Eclipse切换到Android Studio,发现了这种奇怪的行为.当我在方法的第一行添加断点时,我看不到参数值.我唯一能看到的是this参考.我要么必须进行一个调试步骤,要么将断点设置为第一个之后的一行,以查看参数值.

其他人有这个问题或知道这里出了什么问题?

debugging android android-studio

25
推荐指数
3
解决办法
7977
查看次数

分享Google+的意图无法访问图片

我打算分享图像的意图.这适用于大多数提供商,但适用于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 image android-intent google-plus android-sharing

14
推荐指数
1
解决办法
2660
查看次数

在Android N预览中不允许通过myart.com的明文HTTP流量

昨天我获得了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.我仍然得到相同的例外.

https android http

12
推荐指数
3
解决办法
3万
查看次数

Django模型中的默认过滤器

可以在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)

python django model

9
推荐指数
1
解决办法
4535
查看次数

使用DialogFragment时出现IllegalStateException

我刚开始使用Android支持库中的DialogFragment,到目前为止发现它非常烦人.我有一些从我的应用程序中的不同位置调用的自定义AsyncTasks.有两种情况我遇到DialogFragments的问题:

  1. 调试时屏幕关闭
  2. 当我想从onActivityResult()打开FragmentDialog时

至少我认为两者都是相当常见的情况,在这两种情况下我都得到了

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()中打开对话框,但这不是我真正想要的.还有更好的解决方案吗?

谢谢西蒙

android android-dialogfragment

8
推荐指数
2
解决办法
9283
查看次数

将图像从相机存储到私有应用缓存目录中

我想从相机捕获图像并将其保存到私有应用程序缓存目录.我意识到我必须给相机应用程序写入我的私人目录的权限,所以我添加了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)

谢谢西蒙

permissions camera android

8
推荐指数
1
解决办法
3864
查看次数

推送到Heroku后,"用户密码验证失败"

我按照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)

django postgresql heroku

7
推荐指数
1
解决办法
4342
查看次数

即使在添加观察者之前设置了文本,TextWatcher也会调用

在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 …

android textwatcher

6
推荐指数
2
解决办法
4932
查看次数

忽略IconDensities特定文件的lint警告

我试图忽略某些特定文件的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 lint

6
推荐指数
1
解决办法
178
查看次数