小编Jul*_*lia的帖子

您的清单文件不包含 com.google.android.gms.permission.AD_ID 权限

当我尝试将我的应用程序提交到 Play 商店时,出现以下错误:

您在 Play 管理中心上的声明表明您的应用使用广告 ID。您的清单文件不包含 com.google.android.gms.permission.AD_ID 权限。

我已经AD_ID在我的AndroidManifest.xml文件中声明了权限,如下所示:

 <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Run Code Online (Sandbox Code Playgroud)

我的应用程序targetSdk版本是33,我包含的 AdMob 广告库版本是21.3.0,如下:

  implementation 'com.google.android.gms:play-services-ads:21.3.0'
Run Code Online (Sandbox Code Playgroud)

我已按照AdMob 入门指南中的每一步操作,但不起作用。

android-manifest android-permissions google-play-services

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

Android找不到符号方法getMap()

我有一个gps应用程序在我的手机上正常工作.但是,我看到有人在制作中有空指针异常.

    SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);

    // Getting GoogleMap object from the fragment
    googleMap = fm.getMap();

    // Enabling MyLocation Layer of Google Map
    googleMap.setMyLocationEnabled(true);

    googleMap.setPadding(0, 0, 0, 90);
Run Code Online (Sandbox Code Playgroud)

我从生产中得到的错误是由:

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.setMyLocationEnabled(boolean)' on a null object reference
Run Code Online (Sandbox Code Playgroud)

所以我做了一些研究,发现getMap方法已被删除,人们推荐使用 getMapAsync(this);

@Override
public void onMapReady(GoogleMap googleMap) {
    this.googleMap = googleMap;    //which doesn't seem to work
}
Run Code Online (Sandbox Code Playgroud)

但是,我googleMap在许多不同的方法中引用变量,我无法将所有代码移动到onMapReady方法.我尝试this.googleMap = googleMaponMapReady方法内部使用,但每当我尝试引用googleMap变量时,我仍然会得到空指针异常.我在onCreated()中定义了getMapAsync(this),然后尝试访问onResume()中的'googleMap'对象并获取空指针异常.有没有办法来解决这个问题?谢谢.

java android google-maps supportmapfragment

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

Android如何将纬度经度转换为Degree格式

我想转换纬度40.7127837,经度-74.0059413,并采用以下格式

N 40°42'46.0218"W 74°0'21.3876"

最好的方法是什么?

我尝试过像location.FORMAT_DEGREES,location.FORMAT_MINUTES和location.FORMAT_SECONDS这样的方法,但我不知道如何将它们转换为正确的格式.谢谢.

strLongitude = location.convert(location.getLongitude(), location.FORMAT_DEGREES);
strLatitude = location.convert(location.getLatitude(), location.FORMAT_DEGREES);
Run Code Online (Sandbox Code Playgroud)

java android google-maps latitude-longitude android-gps

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

UnsupportedOperationException AudioEffect:参数操作无效

我在这行代码上的均衡器上遇到UnsupportedOperationException错误.bassBoost.setStrength((short) bassBoostPos);

这是代码

equalizer = new Equalizer(0, 0);
if (equalizer != null) {
equalizer.setEnabled (isEqualizer);
numBands = equalizer.getNumberOfBands();
short r[] = equalizer.getBandLevelRange();
minLevel = r[0];
maxLevel = r[1];
bassBoost = new BassBoost (0, 0);

if(bassBoost != null) {
    bassBoost.setEnabled(bassBoostPos > 0 ? true : false);
    bassBoost.setStrength((short) bassBoostPos); 
}
Run Code Online (Sandbox Code Playgroud)

这是例外

java.lang.UnsupportedOperationException: AudioEffect: invalid parameter    
operation
at android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1271)
at android.media.audiofx.BassBoost.setStrength(BassBoost.java:127)
Run Code Online (Sandbox Code Playgroud)

如何解决此问题,以便应用程序不会崩溃.我的意思是我如何检查设备是否支持此操作,如果它不支持,我会跳过这一行.谢谢.

java android equalizer android-fragments audioeffect

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

如何删除Swift 4中字符串的最后一个字符?

如何删除Swift 4中字符串的最后一个字符?我曾经substring在早期版本的Swift中使用,但该substring方法已被弃用.

这是我的代码.

temp = temp.substring(to: temp.index(before: temp.endIndex))
Run Code Online (Sandbox Code Playgroud)

string substring swift swift4

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

当按下后退按钮并打开导航抽屉时,我的应用程序关闭而不是关闭抽屉

我正在尝试对我的应用程序实施材料设计,并且正在学习教程。我的问题是打开导航抽屉时,单击手机上的“后退”按钮,它将关闭我的应用程序,而不是关闭抽屉。如何关闭抽屉而不退出应用程序?谢谢。

这是代码

public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener {

private static String TAG = MainActivity.class.getSimpleName();

private Toolbar mToolbar;
private FragmentDrawer drawerFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mToolbar = (Toolbar) findViewById(R.id.toolbar);

    setSupportActionBar(mToolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);

    drawerFragment = (FragmentDrawer)
            getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
    drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolbar);
    drawerFragment.setDrawerListener(this);

    // display the first navigation drawer view on app launch
    displayView(0);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments navigation-drawer material-design

5
推荐指数
1
解决办法
3289
查看次数

如何动态更改按钮的 Drawable 颜色

我有可绘制的 xml up.xml,如下面的代码所示

 <?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <rotate
        android:fromDegrees="45"
        android:toDegrees="45"
        android:pivotX="-40%"
        android:pivotY="87%" >
        <shape
            android:shape="rectangle" >

            <solid
                android:color="@color/green" />
        </shape>
    </rotate>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

我将这个 drawable 附加到一个按钮上,如下所示

   <Button android:id="@+id/bill_amount_up"
   android:layout_width="30dp"
   android:layout_height="30dp"
   android:background="@drawable/up"
     />
Run Code Online (Sandbox Code Playgroud)

我正在尝试在我的代码中动态更改 up.xml 文件中纯色 android:color="@color/green" 的颜色。我尝试了以下方法,但没有奏效。

 ((GradientDrawable)billAmountUp.getBackground()).setColor(color);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误 java.lang.ClassCastException: android.graphics.drawable.LayerDrawable cannot be cast to android.graphics.drawable.GradientDrawable

任何人都可以帮忙吗?谢谢你。

android drawable android-layout android-drawable android-color

5
推荐指数
1
解决办法
3638
查看次数

如何隐藏 Mapbox 访问令牌

我正在使用 Mapbox 制作地图,并且访问令牌是公开的,访问该网站的人们可以轻松复制。有没有办法隐藏此访问令牌或限制仅访问我的网站?似乎其他人正在使用我的访问代码来执行 Python 地理编码请求。

\n\n
<!DOCTYPE html>\n<html>\n<head>\n    <title>Quick Start - Leaflet</title>\n    <meta charset="utf-8" />\n    <meta name="viewport" content="width=device-width, initial-scale=1.0">  \n    <link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" />\n    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>\n    <script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js" integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw==" crossorigin=""></script>\n</head>\n<body>\n<div id="mapid" style="width: 600px; height: 400px;"></div>\n<script>\n\n    var mymap = L.map(\'mapid\').setView([51.505, -0.09], 13);\n\n    L.tileLayer(\'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw\', {\n        maxZoom: 18,\n        attribution: \'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, \' +\n            \'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, \' +\n            \'Imagery \xc2\xa9 <a href="https://www.mapbox.com/">Mapbox</a>\',\n        id: \'mapbox.streets\'\n    }).addTo(mymap);\n\n    L.marker([40.7127837, -74.0059413]).addTo(mymap)\n        .bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();\n\n    var popup …
Run Code Online (Sandbox Code Playgroud)

mapbox mapbox-marker

5
推荐指数
1
解决办法
7341
查看次数

从左到右连续动画文本

我正在尝试创建一个TextView从左到右移动并无限循环的动画.这是TextView我想要动画的:

<TextView
    android:id="@+id/txtTitle"
    android:layout_width="280dp"
    android:layout_height="wrap_content"
    android:textSize="16sp"
    android:textStyle="italic"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="20dp"
    android:ellipsize="end"
    android:maxLines="1"
    android:layout_centerHorizontal="true"
    android:layout_below="@id/cardView" />
Run Code Online (Sandbox Code Playgroud)

这就是我试图动画的方式TextView:

Animation animation = new TranslateAnimation(0, -280, 0, 0);
animation.setDuration(9000);
animation.setRepeatMode(Animation.RELATIVE_TO_SELF);
animation.setRepeatCount(Animation.INFINITE);
textView.setAnimation(animation);
Run Code Online (Sandbox Code Playgroud)

我想要实现的是文本从屏幕中心开始,向右移动,一旦第一个字母离开屏幕,它应该重新出现在另一边.

java android android-animation

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

consentInformation.canRequestAds - 找不到符号变量 canRequestAds

我正在尝试将 Google User Messaging Platform SDK 添加到我的应用程序中,以便它可以向 EEA 和英国用户投放广告。

我正在遵循本指南中的每一步。 https://developers.google.com/admob/android/privacy

但是,我在这行代码上收到错误“找不到符号变量 canRequestAds”consentInformation.canRequestAds

 import com.google.android.gms.ads.MobileAds;
 import com.google.android.material.tabs.TabLayout;
 import com.google.android.ump.ConsentForm;
 import com.google.android.ump.ConsentInformation;
 import com.google.android.ump.ConsentRequestParameters;
 import com.google.android.ump.UserMessagingPlatform;
 import java.util.concurrent.atomic.AtomicBoolean;

 public class MainActivity extends AppCompatActivity {
   private ConsentInformation consentInformation;
   // Use an atomic boolean to initialize the Google Mobile Ads SDK and load ads once.
   private final AtomicBoolean isMobileAdsInitializeCalled = new AtomicBoolean(false);

   @Override
   protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Set tag for under age of consent. false means users are not …
Run Code Online (Sandbox Code Playgroud)

java android admob gdprconsentform

2
推荐指数
1
解决办法
529
查看次数

将服务从一个活动传递到另一个活

如何将服务从一个活动传递到另一个活动?我有一个显示歌曲列表的音乐播放器(Activity1),当您点击它时,它会在Activity1中启动该服务.我有一个按钮,用户可以单击该按钮打开Activity2.

那么我将服务从Activity1传递给Activity2的最佳方式是什么.如果服务在Activity1中启动,则Activity2应继续播放.如果未在Activity1中启动该服务,则Activity2应在使用之前启动该服务.

谢谢.

这是一些示例代码,MusicService是一个扩展服务类的类.

 public class Activity1 extends AppCompatActivity {

 private MusicService serviceMusic;  

private ServiceConnection musicConnection = new ServiceConnection() {
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        MusicService.PlayerBinder binder = (MusicService.PlayerBinder) service;
        //get service
        serviceMusic = binder.getService();
        serviceMusic.setSongList(songList);
    }

    @Override
    public void onServiceDisconnected(ComponentName name) {

    }
};
Run Code Online (Sandbox Code Playgroud)

}

android android-service android-activity android-service-binding

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

如何从HERE地图中删除现有的标记和信息气泡

我正在为地图使用HERE Maps API。每当单击地图时,我都可以添加标记和信息气泡。但是,我只希望地图上有最新的标记和信息气泡,并删除了所有其他标记和信息。下面是我的代码,其中包含我多次单击地图后的所有标记和信息气泡。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
<link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.0/mapsjs-ui.css?dp-version=1533195059" />
<script type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-core.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-service.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-ui.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-mapevents.js"></script>

</head>
<body>
 <div id="map" style="height:550px;width:720px;"></div>

<script>
    //Step 1: initialize communication with the platform
    var platform = new H.service.Platform({
  app_id: 'devportal-demo-20180625',
  app_code: '9v2BkviRwi9Ot26kp2IysQ',
      useHTTPS: true
    });
    var pixelRatio = window.devicePixelRatio || 1;
    var defaultLayers = platform.createDefaultLayers({
      tileSize: pixelRatio === 1 ? 256 : 512,
      ppi: pixelRatio === 1 ? undefined : 320 …
Run Code Online (Sandbox Code Playgroud)

javascript maps here-api

0
推荐指数
1
解决办法
1780
查看次数