标签: android-manifest

将活动显示为对话框时如何自定义宽度和高度

如果我已经定义了一个Activity:

public class DialogActivity extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(dialog_activity.xml);
    }


}
Run Code Online (Sandbox Code Playgroud)

想像对话框一样显示上面的活动,所以在AndroidManifest.xml文件中,我声明这个活动如下:

<activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"/>
Run Code Online (Sandbox Code Playgroud)

此时一切都很好,我DialogActivity表现为对话.

问题是如何自定义宽度和高度DialogActivity使其更像一个小对话框?(目前它默认占据大部分屏幕)

----------------------------更新--------------------- -

我定义了一个自定义主题如下:

<style name="myDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>

        <item name="android:width">100dip</item> 
        <item name="android:height">100dip</item>

</style>
Run Code Online (Sandbox Code Playgroud)

然后,DialogActivityAndroidManifest.xml中声明为.

<activity android:name=".DialogActivity" android:theme="@style/myDialog"/>
Run Code Online (Sandbox Code Playgroud)

DialogActivity现在甚至占据整个屏幕:(.宽度高度定义:

<item name="android:width">100dip</item>
Run Code Online (Sandbox Code Playgroud)

在主题上没有任何效果,为什么?

android android-widget android-manifest android-emulator android-layout

30
推荐指数
1
解决办法
4万
查看次数

AndroidManifest.xml标签中是否可以有自定义属性?

我想将自定义属性添加到AndroidManifest.xml文件的应用程序标记中.这在Android环境中是否可行?

android android-manifest

30
推荐指数
1
解决办法
1万
查看次数

Android打开pdf文件

我正在开发一个Android应用程序,我必须打开一些文件.

这是我使用intent的代码:

public class FacturaActivity extends Activity {

    (...)

    public void downloadInvoice(View view) {
        File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+ filename);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(file),"application/pdf");
        intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        startActivity(intent);
    }
}
Run Code Online (Sandbox Code Playgroud)

文件位于SD卡的根目录中,我可以手动打开它.

问题

应用程序在到达startActivity(intent)时关闭.我认为问题出在AndroidManifest.xml文件中,但我不知道如何正确使用它.

AndroidManifest.xml中

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="8" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:name="###.MyApplication" > <!--cant show complete name-->
    <activity
        android:name="###.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>

    <activity 
        android:name=".FacturaActivity" >
    </activity>

</application>
Run Code Online (Sandbox Code Playgroud)

logcat的

07-03 15:49:13.094: E/AndroidRuntime(1032): FATAL EXCEPTION: …
Run Code Online (Sandbox Code Playgroud)

pdf android file android-manifest

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

错误类型3:活动类{...}不存在

AndroidManifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.m.e"
      android:versionCode="5"
      android:versionName="3.0">

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18"/>

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
    <activity
            android:name="com.m.e"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden">
        <intent-filter>
            <action
                    android:name="android.intent.action.MAIN"
                    />

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
            android:name="com.m.e"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden">
        <intent-filter>
            <action
                    android:name="android.intent.action.first"
                   />

            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>

    .....

</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

错误:

 Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.m.e/.Splash }
 Error type 3
 Error: Activity class {com.m.e/com.m.e.Splash} does not exist.
Run Code Online (Sandbox Code Playgroud)

注意: .Splash 确实存在.

android android-manifest

30
推荐指数
10
解决办法
6万
查看次数

Google Analytics阻止Android应用

我在Android应用中使用Google Analytics,效果很好.将SDK(google play服务)更新为当前版本(6587000)后,应用程序会在启动时挂起以下第8行,共10次:

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Run Code Online (Sandbox Code Playgroud)

控制台中没有错误.我也添加了成就和排行榜,但首先调用了Analytics.我也改变了上下文,但这有时有效,有时则无效.

我获得可重现结果的唯一一次是,当我从AndroidManifest.xml中删除以下行时.然后在启动时不再冻结.

<meta-data 
        android:name="com.google.android.gms.analytics.globalConfigResource"
        android:resource="@xml/analytics_global_config" />
Run Code Online (Sandbox Code Playgroud)

但我的配置是正确的:

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <string name="ga_appName">TestAppName</string>
  <string name="ga_appVersion">Version1.0</string>
  <string name="ga_logLevel">verbose</string>
  <integer name="ga_dispatchPeriod">1000</integer>
  <bool name="ga_dryRun">true</bool>
</resources>
Run Code Online (Sandbox Code Playgroud)

如果我更改配置,则会产生相同的结果:应用程序在启动时冻结的10次中有8次.

有人知道问题是什么或者我可以检查什么以使我的应用程序再次运行而不会在启动时冻结?

android google-analytics android-manifest

30
推荐指数
1
解决办法
4048
查看次数

如何在安装应用程序时将应用程序的快捷方式添加到主屏幕?

我想在安装我的应用程序后立即在主屏幕上创建应用程序的快捷方式/启动器图标(甚至在我开始之前).那可能吗?我怎么能这样做?

android launcher homescreen android-manifest

29
推荐指数
4
解决办法
7万
查看次数

为什么在包含Google Play服务库时,权限会自动添加到我的AndroidManifest中

我注意到,当我在build.gradle文件中使用以下内容时,会自动添加以下权限

compile 'com.google.android.gms:play-services:7.5.0'
Run Code Online (Sandbox Code Playgroud)

早期版本的播放服务不会出现这种情况.有没有人有解决方案来删除这些不需要的权限?

我只使用广告功能(INTERNET和ACCESSNETWORK_STATE).我不需要LOCATION和USE_CREDENTIALS权限.如何删除这些不需要的权限?

我注意到'manifest-merger-xxx-debug-report.txt'文件包含以下内容

 ...<snipped bunch of other merges>
MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5
    android:name
        ADDED from com.google.android.gms:play-services-maps:7.5.0:22:22
uses-permission#android.permission.ACCESS_COARSE_LOCATION
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
    android:name
        ADDED from com.google.android.gms:play-services-maps:7.5.0:23:22
uses-feature#0x00020000
ADDED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
    android:glEsVersion
        ADDED from com.google.android.gms:play-services-maps:7.5.0:25:8
    android:required
        ADDED from com.google.android.gms:play-services-maps:7.5.0:26:8
android:uses-permission#android.permission.READ_EXTERNAL_STORAGE
IMPLIED from AndroidManifest.xml:2:1 reason: com.google.android.gms.maps requested WRITE_EXTERNAL_STORAGE
uses-permission#android.permission.GET_ACCOUNTS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:5
    android:name
        ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:22
uses-permission#android.permission.USE_CREDENTIALS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:5
    android:name
        ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:22 …
Run Code Online (Sandbox Code Playgroud)

android android-manifest admob android-permissions google-play-services

29
推荐指数
2
解决办法
6876
查看次数

Android Manifest限制到平板电脑

出于商业原因,我想将我的Android应用程序严格限制为平板电脑设备.

目前,我可以通过设置以下内容将应用限制为Honeycomb设备:

android:minSdkVersion="11"
Run Code Online (Sandbox Code Playgroud)

但下一版Android(冰淇淋三明治)的平板电脑和手机版本的操作系统版本号都会更高.

是否有任何清单属性可以指定将其限制为平板电脑设备?(Honeycomb或任何后续的平板电脑版本)

android android-manifest google-play

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

避免硬编码调试模式; Android Manifest中的警告

在将我的ADT插件更新到版本17后,我正在接受警告按摩说

避免硬编码调试模式; 将其删除允许调试和发布版本自动分配一个

在更新之前没有这样的消息.

如何避免此警告消息?

android android-manifest eclipse-adt

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

"可能的透支:根元素绘制背景"

在我的项目上运行Android Lint时,我遇到了这个警告

可能的透支:根元素绘制背景@ drawable/main,主题也绘制背景

推断主题在哪里 @android:style/Theme.NoTitleBar.Fullscreen

有人可以向我解释为什么会这样,以及如何删除它?

我的xml:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/main" //***LINT warning***
        android:orientation="vertical"
        android:weightSum="3" >
Run Code Online (Sandbox Code Playgroud)

清单中定义主题的部分

 <application
        android:icon="@drawable/ic_logo"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-theme

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